У меня есть функция 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)
Когда функция вернется, я хочу, чтобы имя файла было включено с другими переменными.