我们可以使用 csv 库在 Python 中写入(这里应该是编辑事实)并同时读取相同的 csv 文件吗?
可以打开 csv 文件进行编辑和附加吗?
如果是这样,怎么做?
我们可以使用 csv 库在 Python 中写入(这里应该是编辑事实)并同时读取相同的 csv 文件吗?
可以打开 csv 文件进行编辑和附加吗?
如果是这样,怎么做?
简短的回答:没有
长答案:这取决于
使用 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
请注意 - 您的读者将能够阅读您刚刚使用 writer 编写的行。请注意不要陷入无限循环,导致文件非常大。