我有一个for循环,它在目录中创建了几个文件值的CSV。
在这个循环中,我只想创建文件并在标题中写入一次,目前我正在这样做:
#name&path to table file
test = tablefile+"/"+str(cell[:-10])+"_Table.csv"
#write file
if not os.path.isfile(test):
csv.writer(open(test, "wt"))
with open(test, 'w') as output:
wr = csv.writer(output, lineterminator=',')
for val in header_note:
wr.writerow([val])
并追加我的数据:
with open(test, 'a') as output:
wr = csv.writer(output, lineterminator=',')
for val in table_all:
wr.writerow([val])
但是,当我再次运行脚本时,它会将更多数据附加到同一个.csv的底部。我想要的是第一次通过for循环,只是用一个带有标题的新的.csv覆盖任何现有的.csv然后继续附加数据,并在脚本再次运行时覆盖/重写标题。谢谢!
答案 0 :(得分:0)
看起来除了文件处理之外你可能会遇到一些代码问题,但是这里有:问题基本上是在'w'
模式下打开文件会覆盖文件中的所有内容,并在{{1}中打开}模式将不允许您更改标题行。
要解决此问题,您必须获取文件的内容(如果已存在),然后覆盖该文件,包括那些开头的行。
您将需要以下内容:
'a'