我有一个名为 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/