Python 如何读取动态csv文件?

Python 如何读取动态csv文件?,python,csv,Python,Csv,下面的函数读取一个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 = ope

下面的函数读取一个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行开始?任何帮助和指点都将不胜感激

如果文件持续增长 你需要跟踪到目前为止你已经完全阅读过的职位, 下一次调用函数时,执行搜索, 跳转到您停止的位置

为了实现这一点,您可以创建一个类来存储seek位置, 以及一个函数,用于读取最后一个搜索位置,并对其进行更新。 或者,您可以保留当前函数,但使其为搜索位置获取额外的输入,并使其作为额外的输出返回新的搜索位置

如果文件是流,则永远打开,永远无法完全读取 而不是将行读取到数组并返回数组, 当他们到达时让他们离开

如果新内容到达时文件被截断 这将是一个脆弱的设置, 因为您可能会丢失数据, 在它被截断之前不读它。 因此,这可能不值得认真考虑。

如果文件持续增长 你需要跟踪到目前为止你已经完全阅读过的职位, 下一次调用函数时,执行搜索, 跳转到您停止的位置

为了实现这一点,您可以创建一个类来存储seek位置, 以及一个函数,用于读取最后一个搜索位置,并对其进行更新。 或者,您可以保留当前函数,但使其为搜索位置获取额外的输入,并使其作为额外的输出返回新的搜索位置

如果文件是流,则永远打开,永远无法完全读取 而不是将行读取到数组并返回数组, 当他们到达时让他们离开

如果新内容到达时文件被截断 这将是一个脆弱的设置, 因为您可能会丢失数据, 在它被截断之前不读它。
因此,这可能不值得认真考虑。

您可以跟踪到目前为止读取的行,并从那里开始每次调用以获取\u csv\u数据。S@jacoblaw谢谢您的建议,但我将如何实现?您是否可以控制更新文件的过程?csv_data.tell将返回文件的当前位置。记住这一点,您可以使用csv_数据。请返回到它,从您稍后停止的地方开始。@wwii,是的,我可以控制文件的更新。您可以跟踪到目前为止读取的行,并从那里开始每次调用以获取_csv_数据。S@jacoblaw谢谢您的建议,但我将如何实现?您是否可以控制更新文件的过程?csv_data.tell将返回文件的当前位置。记住这一点,您可以使用csv_数据。请返回到您稍后停止的位置。@wwii,是的,我可以控制文件的更新