我正在设置一个脚本,我需要为 for 循环的每个增量编写一个新行。
目前,我先写标题,然后在下一行写,但在每次增量时,它都会删除我的行以写入新数据。
headers = [['Name', 'Age']]
for i in range(10):
line = [[str(name), str(age)]]
with open('myfile.csv', 'w', newline="") as f:
writer = csv.writer(f, delimiter=';')
writer.writerows(headers)
writer.writerows(line)
writer.writerows('\n')
我尝试使用 writer.writerows('\n')
设置下一行,但没有成功。
我认为第二行总是被覆盖,但我不知道如何使用循环跳转到下一行。提前致谢。
最佳答案
您以相反的方式放置代码:
每次循环执行时,您都会打开文件进行写入(而不是追加),每次都会再次写入标题并仅写入一行。
writerows
,顾名思义,写入完整的行,因此不需要换行。它写入 row_s_,因此您必须使用 [[
和 ]]
制作标题和行。使用 writerow
编写一个。
headers = ['Name', 'Age']
with open('myfile.csv', 'w', newline="") as f:
writer = csv.writer(f, delimiter=';')
writer.writerow(headers)
for i in range(10):
line = [str(name), str(age)]
writer.writerow(line)
为什么你的writer.writerows('\n')
不起作用?因为正如我上面所说,它是 row_s_,它需要一个可迭代的。它可以作为 writer.writerows(['\n'])
(制作单元素列表)或 writer.writerow('\n')
(行,不是行)。
关于python - 如何使用for循环换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56837085/