Как сохранить имена файлов, с которыми вы работаете? - PullRequest
1 голос
/ 03 июля 2019

У меня есть функция python, которая выполняет операции с каждым текстовым файлом в папке. Я хочу сохранить имя каждого обрабатываемого файла, чтобы функция возвращала имя файла вместе с другими результатами.

Я пробовал различные методы, показанные ниже.

При этом получаются все имена файлов, но для всех файлов в каждой итерации, а не для одного обрабатываемого файла.

import re, glob, os, pandas as pd
from pathlib import Path

def sections(file_name):    


    with open(file_name,'r') as f:  
        text = f.read()

        doc = textacy.preprocess.normalize_whitespace(text)
        votes = re.findall(r"Voting[\s*]\D+.+", doc)
        provisions = re.findall(r"Provisions+([\s\S]*?)(?=authorized)", doc)
        name = os.path.splitext(file_name)[0]        

        return name, board, votes, provisions


file_dir = Path(r"path")  
all_files = file_dir.glob("*.txt")  
results = [sections(f) for f in all_files]

print(results)

это работает, но не работает в функции и было бы лучше получить из функции, чем объединять с результатами.

files = [f for f in glob.glob(path + "**/*.txt", recursive=True)]

files = pd.DataFrame(files)
files.columns = ['file_name']
files['file_name'] = files['file_name'].replace(r'.*(?=\\).','', regex=True) 

Когда функция вернется, я хочу, чтобы имя файла было включено с другими переменными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...