这是已接受问题的答案中核心概念的一些细微变化,让csv.reader告诉它何时在最后一行上应用于问题的变化。由于每一行的长度可能不同,因此实际上不必读取整个文件。
import csvdef get_last_row(csv_filename): with open(csv_filename, 'r') as f: lastrow = None for lastrow in csv.reader(f): pass return lastrow
更新资料
这是使用进行操作的更简单且可能更快的方法
collections.deque。我是从以下问题的答案之一得到这个想法的:如何读取包含生成的整数列表的输出行。
from collections import dequeimport csvdef get_last_row(csv_filename): with open(csv_filename, 'r') as f: try: lastrow = deque(csv.reader(f), 1)[0] except IndexError: # empty file lastrow = None return lastrow



