Я преобразовал эту страницу (списки команд для разных спортивных команд) из PDF в текст, используя этот код:
import PyPDF3
import sys
import tabula
import pandas as pd
#One method
pdfFileObj = open(sys.argv[1],'rb')
pdfReader = PyPDF3.PdfFileReader(pdfFileObj)
num_pages = pdfReader.numPages
count = 0
text = ""
while count < num_pages:
pageObj = pdfReader.getPage(count)
count +=1
text += pageObj.extractText()
print(text)
Вывод выглядит так:
2019 SEASON
PREMIER DIVISION SQUAD NUMBERS
CLUB: BOHEMIANS
1
James Talbot
GK
2
Derek Pender
DF
3
Darragh Leahy
DF
.... some more names....
2019 SEASON
PREMIER DIVISION SQUAD NUMBERS
CLUB: CORK CITY
1
Mark McNulty
GK
2
Colm Horgan
DF
3
Alan Bennett
DF
....some more names....
2019 SEASON
PREMIER DIVISION SQUAD NUMBERS
CLUB: DERRY CITY
1
Peter Cherrie
GK
2
Conor McDermott
DF
3
Ciaran Coll
DF
Я хотел преобразовать этот вывод в файл с разделителями табуляции с тремя столбцами: название команды, имя игрока и номер.Таким образом, для примера, который я привел, результат будет выглядеть следующим образом:
Bohemians James Talbot 1
Bohemians Derek Pender 2
Bohemians Darragh Leahy 3
Cork City Mark McNulty 1
Cork City Colm Horgan 2
Cork City Alan Bennett 3
Derry City Peter Cherrie 1
Derry City Conor McDermott 2
Derry City Ciaran Coll 3
Я знаю, что мне нужно сначала (1) Разделить файл на разделы, основанные на команде, а затем (2) в каждом разделе команды;объедините каждое поле имя + номер в пары, чтобы присвоить каждому номеру имя.
Я написал этот небольшой фрагмент кода для разбора большого файла в каждой спортивной команде:
import sys
fileopen = open(sys.argv[1])
recording = False
for line in fileopen:
if not recording:
if line.startswith('PREMI'):
recording = True
elif line.startswith('2019 SEA'):
recording = False
else:
print(line)
Но яЯ застрял, потому что приведенный выше код не будет делить блок текста на команду (т.е. мне нужно несколько блоков текста, извлеченных для разделения строк или списков?).Может кто-нибудь посоветовать, как разделить текстовый файл, который у меня есть на команду (так что в этом примере мне нужно оставить три блока текста ... и затем каким-то образом я могу работать над каждым блоком текста, разделенным на команды, на пары чисел иимена).