#python #list
#python #Список
Вопрос:
У меня есть следующий код:
import os
import glob
directory = r'C:UsersMax12Desktopxmlpdfminerattachments'
files = list(glob.glob(os.path.join(directory,'*.*')))
print(files)
Затем я извлекаю текстовые значения этих PDF-файлов:
lines = []
for file in files:
with pdfplumber.open(file) as pdf:
for page in pdf.pages:
text = page.extract_text()
for line in text.split('n'):
print(line)
Мой вывод точен, но не в списке с двумя значениями..
Как я могу сохранить выходные данные значений списка в одном списке, чтобы я мог просматривать список?
Комментарии:
1. Вы хотите, чтобы вся ценность была в вашем объявлении
lines=[]
?2. Я хотел бы иметь общий вывод одного файла в одном элементе списка. А затем второй файл во втором элементе списка.
3. Это означает, что вы ищете строку в соответствии с номером страницы, например
first page, first line
,second page, second line
,n page, n line
. Я прав?
Ответ №1:
Вы можете просто сделать lines.append(line)
вместо print
Если вам нужен список для каждой страницы, вы можете сделать:
files_data = []
for file in files:
with pdfplumber.open(file) as pdf:
lines = []
for page in pdf.pages:
text = page.extract_text()
for line in text.split('n'):
lines.append(line)
files_data.append(lines)
У вас будет вложенный список для каждого файла на files_data
Комментарии:
1. Спасибо, Джоак, однако я хотел бы иметь общий вывод одного файла в одном элементе списка. Теперь у меня есть только одна строка в первом элементе печати (строки [0]).
Ответ №2:
Вы можете добавить свою строку в lines
список.
lines = []
for file in files:
with pdfplumber.open(file) as pdf:
for page in pdf.pages:
text = page.extract_text()
for line in text.split('n'):
lines.append(line)
Вы также можете сжать этот код в одну строку
for line in text.split('n'):
lines.append(line)
Сжатие кода
lines=[ line for line in text.split('n')]
Комментарии:
1. Спасибо, Рекс, однако я хотел бы иметь общий вывод одного файла в одном элементе списка. Теперь у меня есть только одна строка в первом элементе печати (строки [0]).
Ответ №3:
Вы можете использовать понимание списка для создания списка для каждого файла и добавления списка в lines
список:
lines = []
for file in files:
with pdfplumber.open(file) as pdf:
lines.append([line for page in pdf.pages for line in page.extract_text().split('n')])