[英]How do I write multiple lists to a csv file?
我正在尝试将两个不同的列表写入csv文件中的对列,但是当我执行代码时,我收到错误。
我编写代码来浏览文件目录,使用Regex将文件名抓取/拆分为列表变量,然后我想将这些值写入两个单独列中的csv文件。 我可以使用单个for循环来获取代码,但我不能让它同时执行这两个列表。
import os
import csv
import re
path = r"D:\Documents\Python_test\\"
files = []
csv_filename = "python_list_test.csv"
fd = []
fn = []
#r = root, d = directory, f = files
for r,d,f in os.walk(path):
for name in f:
if '.txt' in name:
files.append(name)
split_string = re.split('(\A[0-9]{6})', name)
fd.append(split_string[1])
fn.append(split_string[2])
with open(csv_filename,mode='w',newline='') as c:
writer = csv.writer(c)
writer.writrow(['Date','File Name',])
writer.writrows([i] for i in fd,[e] for e in fn)
我收到一个错误代码:
File "C:/Users/[FILE NAME].py", line 25 writer.writrows^([i] for i in fd,[e] for e in fn)
SyntaxError: Generator expression must be parenthesized
尝试
with open('output.csv', 'w') as f:
writer = csv.writer(f)
writer.writerows(zip(fd, fn))
我设法让它使用以下代码,但我不知道这是最好的方法,或者我是否应该担心效率:
for name in f:
if '.txt' in name:
files.append(name)
split_string = re.split('(\A[0-9]{6})', name)
fd.append(split_string[1])
fn.append(split_string[2])
with open(csv_filename,mode='a',newline='') as c:
writer = csv.writer(c)
writer.writerow([split_string[1],split_string[2]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.