繁体   English   中英

如何将多个列表写入csv文件?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM