写作&在Python中读取相同的csv文件

时间:2013-02-20 11:20:21

标签: python csv python-2.7

我们可以写(这里应该编辑)&使用csv库在Python中同时读取相同的csv文件?

可以打开csv文件进行编辑吗?追加?

若然,怎么样?

1 个答案:

答案 0 :(得分:1)

简答:没有


答案很长:取决于

使用CSV编写器完全可以添加数据。只需以附加"a"模式打开文件:

with file("data.csv", "a" as fh:
    w = csvwriter(fh):
    w.writerow(...)

编辑CSV文件并不是那么简单,因为除非您编辑的列是固定长度,否则您需要插入和删除部分文件。 csv模块没有内置方法。

您可以打开原始文件,删除(或重命名原始文件)并打开一个同名的新文件:

with file("data.csv", "r") as rfh:
    os.remove("data.csv"):
    r = csvreader(rfh)
    with file("data.csv", "w") as wfh:
        w = csvwriter(wfh)
        # ... read from r and write to w

在Linux下,原始文件将保持可供阅读,直到它关闭为止,因此您无需事先重命名。我对Windows不太熟悉,因此您可能需要在创建新文件之前重命名原始文件,并在关闭后删除旧文件。


另一个重点:如果你的写作仅限于追加数据,你可以在不乱的情况下从同一个文件读取和写入。

with file("data.csv", "r") as rfh, file("data.csv", "a") as wfh:
    r = csvreader(rfh)
    w = csvwriter(wfh)
    # you can read using r and append using w

请注意 - 您的读者将能够阅读您刚使用作者编写的行。请注意,不要在无限循环中导致非常大的文件。