[英]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.