Модули для запуска через папки и подпапки - PullRequest
0 голосов
/ 10 октября 2019

Программа ищет в текущем каталоге файлы, начинающиеся с "Oddball_" и заканчивающиеся на ".csv", а затем запускает эти файлы через модули с номерами от 1 до 4 на основе имени файла.

Это правильно работает дляфайлы в корневом каталоге, однако при переходе далее по папкам и подпапкам возникают ошибки.

calc_results.py

import sort_run1
import sort_run2
import sort_run3
import sort_run4

# Import the os module, for the os.walk function
import os

# Set the directory you want to start from
rootDir = '.'
for dirName, subdirList, fileList in os.walk(rootDir):
    for filename in fileList:
        if filename.startswith('Oddball_') and filename.endswith('.csv'):
            if dirName not in fileList:
                print('directory location: ' + dirName)
                if filename.startswith('Oddball_1'):
                    sort_run1.sort1(filename)
                elif filename.startswith('Oddball_2'):
                    sort_run2.sort2(filename)
                elif filename.startswith('Oddball_3'):
                    sort_run3.sort3(filename)
                elif filename.startswith('Oddball_4'):
                    sort_run4.sort4(filename)
                else:
                    continue
        else:
            continue

sort_run1.py: sort_run2.py / sort_run3.py /Все sort_run4.py похожи

import pandas as pd
import pathlib

def sort1(pid):
    print(pid)
    # Name of file to read
    filename = pid

    # data frame to create from file
    df = pd.read_csv(filename)

##
##I've removed all the stuff that happens here to minimize code
##    

Предполагается, что выходные данные будут проходить через все файлы в папках.

1 Ответ

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

В моем файле sort_run1.py у меня было

df = pd.read_csv(filename)

, но мне нужно было следующее

df = pd.read_csv(f'.//{dir_name}//{filename}')

...