【发布时间】:2020-12-15 14:12:29
【问题描述】:
我有一个包含约 100 000 个 txt 文件的文件夹。我正在尝试读取所有文件并创建一个包含两列 id 和 text 的 DataFrame。对于 id,我从我的文件名中获取数字,例如,文件 BL2334_uyhjghbvbvhf,我提取下划线之前的所有内容,所以在这个例子中我的 id 是 BL2334。在创建数据框之前,我想只提取 Detected Text 中的单词:... 所以在这个文件中的单词 BUCK、NIP、Preerfal Deet Attracter。
我的文件:
Id: 02398123-a642-4e3f-88a7
Type: LINE
Detected Text: BUCK
Confidence: 77.965172
Id: c85bbbe
Type: LINE
Detected Text: NIP
Confidence: 97.186539
Id: 28926a7a-78024c80-b9c5
Type: LINE
Detected Text: Preerfal Deet Attracter
Confidence: 47.749722
我的代码:
import os
import pandas as pd
path = r'C:\Users\example\Documents\MyFolder'
file_list = []
for (root, dirs, files) in os.walk(path, topdown=True):
file_list.append([root + "\\" + file for file in files])
def flatten(file_list):
result_list_files = []
for element in file_list:
if isinstance(element, str):
result_list_files.append(element)
else:
for element_1 in flatten(element):
result_list_files.append(element_1)
return result_list_files
result_flatten = flatten(file_list)
final_df = pd.DataFrame()
for file in result_flatten:
temp_df = pd.DataFrame()
id = file.split('\\')[-1].split('_')[0]
temp_df['id'] = [id]
temp_df['text'] = [open(file,encoding="utf8").read()]
final_df = pd.concat([final_df, temp_df], ignore_index = True)
【问题讨论】:
-
你的代码有什么问题?
-
我得到一个包含两列 id 和 text 的输出。这需要很长时间,在我的文本列中,我从我的文件中获得了一切,我只需要来自 Detecte Text 的单词:
标签: python python-3.x pandas