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

2024-05-03 11:40:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将两个不同的列表写入csv文件的pair列中,但是当我执行代码时,我得到了一个错误。在

我编写了一些代码来遍历一个文件目录,用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)

我得到一个错误代码:

^{pr2}$

Tags: 文件csv代码nameinimport列表for
2条回答

我设法让它用下面的代码运行,但我不知道这是不是最好的方法,或者我是否应该担心效率:

    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]])

试试看

with open('output.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerows(zip(fd, fn))

相关问题 更多 >