【发布时间】:2017-07-21 22:21:11
【问题描述】:
下面的函数读取一个 csv 文件并将其附加到一个列表中,然后我在另一个函数中使用该列表。
def get_csv_data(csv_path):
"""
read test data from csv and return as list
@type csv_path: string
@param csv_path: some csv path string
@return list
"""
rows = []
csv_data = open(str(csv_path), "r")
content = csv.reader(csv_data)
# skip header line
next(content, None)
# add rows to list
for row in content:
rows.append(row)
return rows
我现在遇到的问题是 csv 是由另一个函数实时动态填充的。将csv读取到最后一个当前行然后再次读取它忽略先前读取的行的最佳方法是什么。需要明确的是,我的意思是当函数读取 csv 时,例如到第 8 行,然后用更多数据更新 csv,下一次运行如何从第 9 行开始?任何帮助和指针将不胜感激。
【问题讨论】:
-
您可以跟踪到目前为止读取的行,并从那里开始每次调用 get_csv_data。 S
-
@jacoblaw 感谢您的建议,但我将如何实施呢?
-
您是否可以控制更新文件的进程?
-
csv_data.tell()将返回文件的当前位置。记住它,你可以csv_data.seek()回到它,从你离开的地方开始。 -
@ wwii,是的,我确实可以控制文件的更新