python中的If/Else

2024-03-29 02:00:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python读取csv文件的最后24行。例如,如果csv数据有500行,我想把476行写到500行。我不知道csv文件有多少行。我试过这个代码,不起作用。 有人能帮我吗?你知道吗

z=0 
r=0

for row in csvData:  
    z += 1      

for row in csvData:  

    if r > (z-30) || r < z:    
        html.write('{ x: new Date('+ row[0] + '), y:' + row[2] + '},')   
    r += 1

Tags: 文件csv数据代码innewfordate
1条回答
网友
1楼 · 发布于 2024-03-29 02:00:02

代码无法工作的原因是csvData在第一个for循环中被完全读取。你知道吗

您需要在两个循环之间使用csvData.seek(0)来“倒带”文件。见"Why can't I call read() twice on an open file?"

不过,有一种较短的方法,可以用readlines()将所有行作为列表加载,然后直接选择最后24行:

for row in csvData.readlines()[-24:]:
    # do something with row

只要你的csvData不是很大,这个就可以正常工作。你知道吗

如果您需要更有效(但更长)的方法,可以使用answer"Get last n lines of a file with Python, similar to tail"。你知道吗

相关问题 更多 >