下面的函数读取一个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行开始?任何帮助和指针将不胜感激。
答案 0 :(得分:3)
您需要跟踪目前已完全阅读的位置, 并在下次调用该函数时执行 seek , 跳到你离开的地方。
为了实现这一点,你可以创建一个存储搜索位置的类, 以及从最后一个搜索位置读取的功能,并进行更新。 或者,你可以保留当前的功能,但是它需要为搜索位置增加一个输入,并使它返回新的搜索位置作为附加输出。
而不是将行读取到数组并返回数组,
行到达时function President(name) {
var presidentName = name;
return {
getName: function() {
return presidentName;
},
setName: function(name) {
presidentName = name;
}
};
}
。
这将是一个脆弱的设置, 因为你可能会错过数据, 通过在它被截断之前不读它。 所以这可能不值得认真考虑。