迭代在 Python 中的 CSV 模块的“打开”中不起作用

阿迪亚·普拉达娜

我想创建 2 个或更多 CSV 文件,for但只创建了 1 个 CSV。

import csv
import os

foods = ['pasta','chocolate']
for food in foods:
    with open(food+'.csv', 'w') as csvfile:
        fieldnames = ['id', 'Category', 'Name']

        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        writer.writeheader()
        os.chdir('E:/data/'+food)
        folders = os.listdir(os.curdir)
        for filename in folders:
                writer.writerow({'id':'', 'Category':food, 'Name':filename})

在这种情况下,只有pasta.csv成功创建。我想要chocolate.csv也创建。任何解决方案?谢谢

AC_

我怀疑 for 正在工作,问题出在os.chdir. 你只需要它来获取目录列表,你应该考虑使用glob

import csv
from glob import glob

foods = ['pasta','chocolate']
for food in foods:
    with open(food+'.csv', 'w') as csvfile:
        fieldnames = ['id', 'Category', 'Name']

        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        writer.writeheader()
        folders = glob('E:/data/'+food+'/*/')
        for filename in folders:
                writer.writerow({'id':'', 'Category':food, 'Name':filename})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章