Циклически перебирая несколько CSV-файлов в разных папках, создавая несколько выходных данных и помещая их в одну и ту же папку на основе ввода - PullRequest
0 голосов
/ 30 октября 2019

Проблема: у меня есть около 100 папок в 1 главной папке, каждая с файлом CSV с точно таким же именем и структурой, например input.csv. Я написал скрипт Python для одного из файлов, который принимает csv-файл в качестве входных данных и выдает два изображения в качестве выходных данных в одной папке. Я хочу создать эти изображения и поместить их в каждую папку с учетом входных данных для каждой папки.

Есть ли быстрый способ сделать это? До сих пор я каждый раз копировал свой сценарий в каждую папку и выполнял его. Для 5 папок все было в порядке, но для 100 это будет утомительно и займет много времени.

Может кто-нибудь, пожалуйста, помогите встретиться? Я очень новичок в кодировании каталогов, путей, файлов и т. Д. Я уже пытался найти решение, но пока безуспешно.

1 Ответ

0 голосов
/ 30 октября 2019

Вы можете попробовать что-то вроде этого:

import os
import pandas as pd
path = r'path\to\folders'
filename = 'input'

# get all directories within the top level directory 
dirs = [os.path.join(path, val) for val in os.listdir(path) if os.path.isdir(os.path.join(path, val))]

# loop through each directory 
for dd in dirs:
    file_ = [f for f in os.listdir(dd) if f.endwith('.csv') and 'input' in f]
    if file_:
        # this assumes only a single file of 'filename' and extension .csv exists in each directory 
        file_ = file_[0]
    else:
        continue
    data = pd.read_csv(file_)

    # apply your script here and save images back to folder dd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...