我已经编写了代码来创建一个多行CSV文件。为了这个目的,一列将写入默认值,其他列将有空白值供以后编辑。
代码的结果是正确创建了标题,但是所有列表值都合并到了第一行。
import csv
# Write Headers
headerlist = (['Class', 'Grade', 'Semester'])
with open('venv/User Data/Classes.csv', 'w', newline='') as file:
dx = csv.DictWriter(file, delimiter=',',
fieldnames=headerlist)
dx.writeheader()
# Define Default values
Default = [
['Math', 'English', 'Science', 'History']
]
# Write Default values to Class column
for name in Default:
with open('venv/User Data/Classes.csv', 'a') as csv_file:
a = name
b = " "
c = " "
result = {"Class": a, "Grade": b, "Semester": c}
result_object = csv.DictWriter(csv_file, fieldnames=headerlist)
result_object.writerow(result)
应创建4行,其中class列下有值,其他两行为空值。
2条答案
按热度按时间at0kjp5o1#
问题是你在用
writerrow()函数写入一行,如果要写入多行,建议您尝试以下方法:
不同之处在于writerows()的使用--注意结尾的S--函数将写入多行。最后,您可能需要将结果字典中的值列表转换为列表,以便writerows()函数接受它。
23c0lvtd2#
这段代码使用for循环创建变量中的值列表,然后一次性写入所有值。