Python 如何在循环中传递csv的标头
我想在循环中创建一个csv文件。但当我这样做时,它也会写入头部分。如何只写一段时间的标题部分Python 如何在循环中传递csv的标头,python,python-3.x,csv,Python,Python 3.x,Csv,我想在循环中创建一个csv文件。但当我这样做时,它也会写入头部分。如何只写一段时间的标题部分 fieldnames=['numbers'] for i in range(0,100): with open('numbers.csv','a',newline='') as csvfile: writer=csv.Dictwriter(csvfile,fieldnames=fieldnames,lineterminator='\n') writer.write
fieldnames=['numbers']
for i in range(0,100):
with open('numbers.csv','a',newline='') as csvfile:
writer=csv.Dictwriter(csvfile,fieldnames=fieldnames,lineterminator='\n')
writer.writeheader()
writer.writerow({'numbers':i})
非常简单:将此部分移出循环(似乎很明显…)。无论如何,您都不想在每次迭代中重新打开该文件(打开一个文件并关闭它FWIW远远不是免费的):
非常简单:将此部分移出循环(似乎很明显…)。无论如何,您都不想在每次迭代中重新打开该文件(打开一个文件并关闭它FWIW远远不是免费的):
做一个条件,检查
i
变量,只有当它等于0
时才写入头?@techouse好吧,从技术上讲它可以工作,但它有一点鲁布·戈德堡机器的味道……我同意,但这是最简单的解决方案。请检查i
变量,只在它等于0
时写入头?@techouse好吧,从技术上讲,它可以工作,但它有一点鲁布·戈德堡机器的味道……我同意,但这是最简单的解决方案。
fieldnames=['numbers']
with open('numbers.csv','a',newline='') as csvfile:
writer = csv.Dictwriter(csvfile,fieldnames=fieldnames,lineterminator='\n')
writer.writeheader()
for i in range(100):
writer.writerow({'numbers':i})