Не удается правильно извлечь текст в список

#python #python-3.x #pathlib

#python #python-3.x #pathlib

Вопрос:

У меня есть список файлов, из которых я хотел бы извлечь текст из каждого и поместить текст для каждого файла в отдельный список. Хотя выходные данные отображаются в виде строк, из-за чего мне сложно определить, какой текст принадлежит какому файлу.

————это список файлов:

 [WindowsPath('C:/Users/xxxx/Desktop/test_folder/final test.txt'),  WindowsPath('C:/Users/xxxx/Desktop/test_folder/iptest.txt'), WindowsPath('C:/Users/xxxx/Desktop/test_folder/New Text Document.txt'), WindowsPath('C:/Users/xxxx/Desktop/test_folder/test2.txt')]
  

————Результат, который я получаю, является:

 rgerg



egfreg



secret

dafreagr 343.23.12.53.100 aefref
secret

grre

regreg



ergre
  

тест работает

————Я бы хотел, чтобы результат был:

 [['rgerg','egfreg','secret'],
['dafreagr 343.23.12.53.100 aefref'],
['secret','grre','regreg','ergre'],
['test is working']]
  

————ИЛИ возможны отдельные списки:

 ['rgerg','egfreg','secret']
['dafreagr 343.23.12.53.100 aefref']
['secret','grre','regreg','ergre']
['test is working']
  

————-У меня есть функция «loader ()», которая в настоящее время извлекает текст файла:

  for items in txt_files:
   for item in loader(items):
    words = item
    print(words)
  

Я не смог получить желаемый результат как со списком, так и со словарем. Не уверен, как мне следует поступить с этим.

ОБНОВЛЕННЫЙ ВЫВОД:

вывод элементов:

 C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersXXXXDesktoptestNew Microsoft Word Document.docx
C:UsersxxxxDesktoptestsecretwe.docx
C:UsersxxxxDesktoptestsecretwe.docx
C:UsersxxxxDesktoptestsecretwe.docx
C:UsersxxxxDesktoptestsecretwe.docx
C:UsersxxxxDesktoptestsecretwe.docx
C:UsersxxxxDesktoptestsecretwe.docx
C:UsersxxxxDesktoptestsecretwe.docx
  

Вывод элемента:

 S
e
c
r
e
t












S
e
c
r
e
t

t
h
i
s

i
s

a

t
e
s
t

d
o
c
u
m
e
n
t

f
o
r

k
e
y
w
o
r
d

s
c
a
n
s
.




T
h
i
s

i
s

a

t
e
s
t
.




S
e
c
r
e
t
s
e
c
r
e
t
  

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

1. добавьте содержимое в файл в вашем вопросе

Ответ №1:

Вам нужно объявить result список, а затем добавить к нему данные.

Пример:

 result = []
for items in txt_files:
    temp = []
    for item in loader(items):
        temp.append(item)
    result.append(temp)

print(result)
  

Редактировать согласно комментарию

 result = []
for items in txt_files:
    result.append(loader(items).splitlines())
print(result)
  

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

1. Спасибо. Это сработало, но теперь его вывод выглядит следующим образом:

2. [[‘S’, ‘e’, ‘c’, ‘r’, ‘e’, ‘t’, ‘n’, ‘n’, ‘n’, ‘n’, ‘n’, ‘n’, ‘S’, ‘e’, ‘c’, ‘r’, ‘e’, ‘t’, ‘ ‘ ‘, ‘t’, ‘h’, ‘i’, ‘s’, ‘ ‘, ‘i’, ‘s’, ‘ ‘, ‘a’, ‘ ‘, ‘t’, ‘e’, ‘s’, ‘t’, ‘ ‘, ‘d’, ‘o’, ‘c’, ‘u’, ‘m’, ‘e’, ‘n’, ‘t’, ‘ ‘, ‘f’, ‘o’, ‘r’, ‘ ‘, ‘k’, ‘e’, ‘y’, ‘w’, ‘o’, ‘r’, ‘d’, ‘ ‘, ‘s’, ‘c’, ‘a’, ‘n’, ‘s’ , ‘.’, ‘n’, ‘n’, ‘T’, ‘h’, ‘i’, ‘s’, ‘ ‘, ‘i’, ‘s’, ‘ ‘, ‘a’, ‘ ‘, ‘t’, ‘e’, ‘s’, ‘e’, ‘c’, ‘r’, ‘e’, ‘t’], [‘s’, ‘e’, ‘c’, ‘r’, ‘e’, ‘t’], [‘s’, ‘e’, ‘c’, ‘r’, ‘e’, ‘e ‘, ‘t’]]

3. Это вывод ‘items’. Это было слишком долго для публикации в качестве комментария. но в основном оба его файла просто повторяются для количества элементов в списках C:UsersXXXXDesktoptestNew Microsoft Word Document.docx C:UsersXXXXDesktoptestNew Microsoft Word Document.docx C:UsersXXXXDesktoptestNew Microsoft Word Document.docx C:UsersXXXXDesktoptestNew Microsoft Word Document.docx C:UsersXXXXDesktoptestNew Microsoft Word Document.docx C:UsersxxxxDesktoptestsecretwe.docx C:UsersxxxxDesktoptestsecretwe.docx C:UsersxxxxDesktoptestsecretwe.docx

4. а что касается ‘item’, то выводом была каждая буква файла в отдельной строке, прописанная вертикально. S e c r e t