首页 > 解决方案 > 如何从多个文件夹和子文件夹中读取 .txt 文件的名称并将它们写入多个 .csv 文件

问题描述

我在文件夹的子文件夹中有多个提取的 .txt 文件。子文件夹名称只不过是提取的 .pdf 的名称,.txt 文件是在单独的文本文件中包含来自 pdf 每一页的文本的文件。

例子:

已提取:myFile.pdf 有 10 页,因此它被提取为 10 个 .txt 文件到以下文件夹中,输出文件夹 --> myFile 文件夹 --> [csv 文件夹,json 文件夹,txtFiles 文件夹]

我的目标 10 个文本文件在“txtFiles 文件夹”中我在 100 个文件夹中有 100 个这样的 pdf 文件和文本文件

我这样做是为了使用线性 SVM 模型对 pdf 文档中的每一页进行分类。现在我已经为来自 ML 模型的目标文本文件分类了标签。

在这里,我尝试为每个文件创建一个带有 .pdf 文件名或第二个文件夹名称的 .csv 文件,并将页码和相关预测标签写入 .csv 文件。

filename = []
clfLabel = []
for root, dir, files in os.walk(folderPath):
    for name in files:
        if name endswith((".txt")):
            file = os.sep.join([root, name])
            with open(file) as textFile:
            text = textFile.read()
            cleanText = preprocessText(text)
            cleanText = [cleanText]
            tfidfText = loaded_vectorizer.transform(cleanText)
            predicted = svcModelpkl.predict(tfidfText)
            prediction = encoder.inverse_transform(predicted)
            filename.append(name)
            clfLabel.append(prediction)
            fileName = pd.DataFrame(filename)
            clfLabel = pd.Dataframe(clfLabel)
            data = pd.concat(["fileName", "clfLabel"], axis = 1, ignore = index, sort = False)
            data.columns = ["fileName", "clfLabel"]
            data.to_csv(name+".csv")

在这里,我希望为每个具有相同名称的 pdf 或文件夹创建一个单独的 .csv 文件,并带有页码及其预测

myfile.pdf 有 10 页 anotherfile.pdf 有 15 页

我的文件.csv

页码 文档标签
1 文档_A
2 文件_B
3 文档_C
4 文档_A
5 文档_C
6 文件_B
7 文件_D
8 文档_C
9 文档_A
10 文件_D

anotherfile.csv 等....

我是 python 新手,请帮助我实现这一目标

标签: pythonpandasexport-to-csvsvmtfidfvectorizer

解决方案


推荐阅读