Python 使用for循环写入csv
我正在尝试为列表中的每个项目写一行新的人的名字和年龄。如果列表中有3个人,我的CSV应该有3行2列,如下所示:Python 使用for循环写入csv,python,csv,for-loop,Python,Csv,For Loop,我正在尝试为列表中的每个项目写一行新的人的名字和年龄。如果列表中有3个人,我的CSV应该有3行2列,如下所示: Joann 15 Maria 13 Peter 19 我的CSV为我提供1行6列,如下所示: Joann 15 Maria 13 Peter 19 这是我正在使用的代码 row_lines=[] for i in list_people: info = inspect.getmembers(i) name = info[1] row_lines
Joann 15
Maria 13
Peter 19
我的CSV为我提供1行6列,如下所示:
Joann 15 Maria 13 Peter 19
这是我正在使用的代码
row_lines=[]
for i in list_people:
info = inspect.getmembers(i)
name = info[1]
row_lines.append(name)
age = info[2]
row_lines.append(age)
with open('test.csv', 'w') as csvFile:
writer=csv.writer(csvFile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
writer.writerow(row_lines)
我需要做哪些更改,以便它在每次循环中写入新行(针对列表中的每个人)?将每对姓名和年龄附加为一个列表,然后使用
csv.writer的writerows
方法:
for i in list_people:
info = inspect.getmembers(i)
row_lines.append(info[1:3]) # slice [1:3] returns a list of items 1 and 2
with open('test.csv', 'w') as csvFile:
writer = csv.writer(csvFile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
writer.writerows(row_lines)
打开csv
文件一次,每次迭代写一行,不需要这么多变量:
with open('test.csv', 'w') as csvFile:
writer=csv.writer(csvFile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL, lineterminator='\n')
for i in list_people:
info = inspect.getmembers(i)
writer.writerow(info[1:3])
或者使用生成器理解将for
循环完全替换为writerows
,这将更快:
writer.writerows(inspect.getmembers(i)[1:3] for i in list_people)
我想您应该使用(注意s
)而不是生成错误的writerow
@UnholySheep:“\u csv.error:sequence expected”