Читать текстовые файлы в специальном формате в Python - PullRequest
1 голос
/ 19 марта 2019

Я хочу преобразовать папку текстовых документов в следующий формат:

texts = ['text of document 1', 'text of document 2', 'text of document 3',...]

для применения методов интеллектуального анализа текста.

Пока мой код следующий:

import os
file= "*.txt"
path = "C:\\"
texts=[]

for files in os.listdir(path):
     with open(path + files) as f:
         for x in f:
             texts.append(x)

К сожалению, результат отличается от желаемого:

texts = ['line 1 of document 1', 'line 2 of document 1', …]

Что я делаю неправильно? Кто-нибудь может предложить улучшение для моего кода?

1 Ответ

3 голосов
/ 19 марта 2019

for line in file: (или в вашем случае for x in f:) перебирает строки в файле.

Вместо этого используйте метод .read().Это будет читать весь файл в строку:

for files in os.listdir(path):
     with open(path + files) as f:
         texts.append(f.read())

Редактировать: я только что видел ваш комментарий о пустых записях.Если ваш каталог содержит пустые файлы, вы можете запретить их добавление:

for files in os.listdir(path):
     with open(path + files) as f:
         contents = f.read()
         if contents.strip(): # will also remove files that contain only whitespace
             texts.append(f.read())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...