我有一个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)
当函数返回时,我希望文件名包含在其他变量中。