我正在开发一个将行写入CSV的应用程序。但是,当我第二次运行应用程序时,已经写入的行将被新行覆盖。如何使作者写入下一个空白行,而不是已经有数据的空白行?我还没有找到任何关于如何做到这一点。这是我的代码:
listsof = [1, 2, 3, 4]
with open('C:/Users/Family3/Downloads/weather.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile, delimiter=',',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
writer.writerow(listsof)
答案 0 :(得分:8)
请尝试这样做(注意附加'a'):
with open('C:/Users/Family3/Downloads/weather.csv', 'a', newline='') as csvfile:
writer = csv.writer(csvfile, delimiter=',',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
writer.writerow(listsof)
'a'opens the file for appending并且不会删除具有相同名称的现有文件。
答案 1 :(得分:2)
这是因为,无论何时打开csv文件,都不会考虑到可能已经在您的文件中包含数据。当您将csvfile加载到程序中时,您应该将新数据附加到文件中,而不是仅仅写入。