python - 在 Python 中循环遍历子文件夹并保存为 .csv

标签 python python-3.x loops for-loop iteration

我有一个名为 Folder 的文件夹,结构如下:

Folder/
├── Folder1
│   ├── image1.jpg
│   ├── image2.jpg
│   ├── image3.jpg
│   ├── image4.jpg
│   └── image5.jpg
├── Folder2
│   ├── image1.jpg
│   ├── image2.jpg
│   ├── image3.jpg
│   ├── image4.jpg
│   └── image5.jpg
├── Folder3
│   ├── image1.jpg
│   ├── image2.jpg
│   ├── image3.jpg
│   ├── image4.jpg
│   └── image5.jpg
└── Folder4
    ├── image1.jpg
    ├── image2.jpg
    ├── image3.jpg
    ├── image4.jpg
    └── image5.jpg

我有一个代码可以打印文件夹以及每个文件夹中的图像。

rootDir = '.'
for dirName, subdirList, fileList in os.walk(rootDir):
    print('Found directory: %s' % dirName)
    for fname in fileList:
        print('\t%s' % fname)"   

但是,我想编写一段代码来循环遍历子文件夹并将 5 个图像中的每一个保存到 .csv 文件中。例如,如果我有参与者 1,我想要一个 .csv 文件,其中包含 Folder1 中的图像(如果我有参与者 2) code> 我想要一个包含 Folder2 中的图像的 .csv 文件,依此类推。

我想我可能需要创建一个空列表,然后保存到 .csv 文件,如下所示:

lst = []

cols = ['participant', 'imagefile']

pd.DataFrame(lst,columns=cols).to_csv('imagefiles.csv', index=False)

任何帮助将不胜感激!

最佳答案

这是 Python 3.6+ 中的一个可能的解决方案(3.4+ 是因为 pathlib ,3.6+ 是因为 f-strings ) ):

from pathlib import Path
import csv


folder = Path('/path/to/main/Folder'):
csvdir = Path('/path/to/store/csv/files')
participants = [1, 2, 3, 4]
headers = ['participant', 'imagefile']

for participant in participants:
    participant_folder = folder / f'Folder{participant}'

    # Do we have a Folder for participant number? 
    if participant_folder.is_dir():
        # create a csv file in csvdir for participant
        with Path(csvdir / f'imagefiles{participant}.csv').open('w') as f:
            csvwriter = csv.writer(f, quote=csv.QUOTEALL)
            
            cswriter.writerow(headers)

            for image in participant_folder.glob('*.jpg'):
                csvwriter.writerow([participant, image])

关于python - 在 Python 中循环遍历子文件夹并保存为 .csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59862422/

相关文章:

python - 为什么 lxml 不允许在整个 ElementTree 上使用相对 XPath 表达式?

javascript - 如何将对象插入对象 x 次?

java - 无法显示循环中的所有字符

python - 构建 1 到 n 的四元组所有可能组合的最有效方法

python - 用 Rust 编写的 PyPy + Cpython 扩展 (rust-cpython)

python - 以不同的速率完成线程并与结果交互

python - Pygame,从二维 numpy 数组创建灰度

javascript - 递归函数总是在最后返回 undefined。怎么修?

python - while 循环不会中断,当计数器不再小于数组长度时应该中断

python - 从句子字符串中提取每个单词的第一个字符