Как прочитать имена файлов .txt из нескольких папок и вложенных папок и записать их в несколько файлов .csv

#python #pandas #export-to-csv #svm #tfidfvectorizer

Вопрос:

У меня есть несколько извлеченных файлов .txt во вложенных папках папки. Имя подпапки-это не что иное, как имя извлеченного файла .pdf, файлы .txt-это файлы, содержащие текст с каждой страницы pdf в отдельном текстовом файле.

Пример:

Извлечено: Файл myFile.pdf, содержащий 10 страниц, поэтому он был извлечен в 10 файлов .txt в следующие папки, Папка вывода —> Папка myFile —>> [Папка csv, папка json, папка txtFiles]

мои целевые 10 текстовых файлов находятся в папке «txtFiles», у меня есть 100 таких PDF-файлов и текстовых файлов в 100 папках

Я сделал это, чтобы классифицировать каждую страницу в pdf-документе, используя линейную модель SVM. Теперь у меня есть классифицированные метки для целевых текстовых файлов, полученных из модели ML.

Здесь я пытаюсь создать файл .csv с именем файла .pdf или именем 2-й папки для каждого файла и записать номер страницы и соответствующую метку прогноза в файл .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")
 

здесь я хочу создать отдельный файл .csv для каждого pdf-файла или папки с одинаковым именем с номерами страниц и их прогнозами

в файле myfile.pdf 10 страниц, в другом файле.pdf 15 страниц

Мой файл.csv

pageNum ДокЛейка
1 Doc_A
2 Doc_B
3 Doc_C
4 Doc_A
5 Doc_C
6 Doc_B
7 Doc_D
8 Doc_C
9 Doc_A
10 Doc_D

другой файл.csv и т. Д….

Я новичок в python, пожалуйста, помогите мне в этом

Комментарии:

1. В чем на самом деле проблема? Вы упомянули, что вы пытаетесь сделать, но не упомянули реальное место, где вы застряли. В конечном счете, выполнение нескольких операций чтения -> многократной записи по сути то же самое, что выполнение только одного чтения ->> успешная запись и повторение во всех случаях.

2. Я не знаю, как создать csv-файл с именем папки и распечатать textfile_01.txt номер страницы, который является номером в названии 01 и соответствующей метке прогноза

3. Чтобы получить имя папки, вы можете использовать Path объект: from pathlib import Path . Взгляните на эту ссылку: automatetheboringstuff.com/2e/chapter9 в разделе «Получение частей пути к файлу». Затем просмотрите раздел «Запись в файлы» в той же главе, чтобы добавить необходимую вам информацию. На самом деле, если вы новичок в python, я бы настоятельно рекомендовал взглянуть и на другие главы, там есть много хороших вещей.