在Python中,我们是否可以使用csv库同时编辑和读取同一个CSV文件?
CSV文件是否可以被打开以进行编辑和追加操作?
如果可以,该如何实现?
在Python中,我们是否可以使用csv库同时编辑和读取同一个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
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 a
请小心 - 您的读者将能够使用writer读取您刚刚编写的行。请注意不要陷入无限循环,从而导致文件非常大。