簡體   English   中英

根據 csv 中的文件夾名稱列表從文件夾中提取文件

[英]Extract files from folders according to folder name list from csv

我有一個包含 1000 多個子文件夾的主文件,例如文件夾 1、文件夾 2、文件夾 3...文件夾 1000。在這些子文件夾中,每個文件夾中都有圖像。

我有一個 csv,它顯示了我希望從中提取圖像的子文件夾,例如文件夾 3、文件夾 7 和文件夾 10。

到目前為止,我已經設法編寫了從 csv 讀取所需子文件夾名稱的腳本,但是如何才能在特定子文件夾下提取這些圖像?

當前代碼如下所示:

import csv
with open("XXX.csv", "r") as csv_file:
    treelist = []
    csv_reader = csv.DictReader(csv_file, delimiter=',') 
    for lines in csv_reader:
        x = lines['TREE_MARK']
        treelist.append(x)
 
    print(treelist)

這是一個非常簡單的示例,說明了如何實現這一點。 我正在使用 pathlib 獲取文件路徑,pandas 讀取子文件夾,通過子文件夾全局到 go 並獲取每個圖像(在我的情況下為 .png)和 skimage 用於讀取圖像

#!/usr/bin/env python
import pandas as pd
from pathlib import Path
from skimage import io

working_dir = Path('.')
# get list of desired folders
df = pd.read_csv('xxx.csv', names=['folder_names'])
# traverse through folders
for file in df['folder_names']:
  # get complete file path
  file_path = Path(working_dir.absolute(), file)
  # look for png images in each sub folder
  for file in file_path.glob('*.png'):
    # read image
    img = io.imread(file)
    # process here...

編輯:根據您在評論中的 output :假設您有一個列表

folder_list = ['Folder 3', 'Folder 7', 'Folder 10']

您可以遍歷列表並閱讀我上面的答案中的單個圖像

# traverse through folders
for folder in folder_list:
  # get complete folder path
  file_path = Path(working_dir.absolute(), folder)
  # look for png images in each sub folder
  for file in file_path.glob('*.png'):
    # read image
    img = io.imread(file)
    # process here...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM