Сравнение элементов из списка, чтобы превзойти электронную таблицу, а затем извлекли сравнения из электронной таблицы - PullRequest
0 голосов
/ 30 октября 2019

Я использую Python 3.7. Я заранее прошу прощения, если мой код немного грязный. Это первая программа / проект, над которым я когда-либо работал, поэтому я очень много учусь по ходу дела.

Я пытаюсь создать программу, которая сканирует и анализирует определенные выражения из PDF-файла. (используя Regex), а затем сравнивает и идентифицирует эти результаты с данными, содержащимися в электронной таблице Excel.

В настоящее время программа успешно извлекает правильную информацию из PDF и выполняет сравнение со столбцом B в Excel, чтобы подтвердить, что данные существуют и верны.

Я хотел бы, чтобы это былораспечатать данные из определенной ячейки в столбце B, рядом с ячейкой в ​​столбце C.

В настоящее время это мой код:

# Open file dialog
root = tk.Tk()
root.withdraw()

file_path = filedialog.askopenfilename()

# Open DOC and extract text
pdfFile = open(file_path, 'rb')
reader = PyPDF2.PdfFileReader(pdfFile)

pageNum = str(reader.numPages)
print('Your document has ' + pageNum + ' pages' + '\n')

for pN in range(reader.numPages):
    decCon = reader.getPage(pN).extractText()

#print(decCon) #to test if extracting worked.


# find the harmonised standards
# EN 000 000-1 V0.0.0, EN000000-1V0.0.0, EN 00000:0000, EN 00000:0000
docRegex = re.compile('''
EN\s\d\d\d\s\d\d\d-\d\sV\d.\d.\d|

EN\s\d\d\d\d\d:\d\d\d\d|

EN\s\d\d\d\d\d-\d:\d\d\d\d
''', re.VERBOSE)

# extract the harmonised standards
extractedHs = docRegex.findall(decCon)

# DEBUG - to ensure it is collecting correct data
print('It contains the following standards: ' + '\n')
pprint.pprint(extractedHs)
print('\n' + '\n')

# setup progress bar
print('Scanning all ETSI standards...') 
toolbar_width = 10
sys.stdout.write("-" * toolbar_width)

for i in range(toolbar_width):
    time.sleep(0.25)
    sys.stdout.write("-")
    sys.stdout.flush()

sys.stdout.write('\n' + '\n' + 'Printing results now...' + "\n" + '\n')


# extract from etsi spreadsheet
wb = openpyxl.load_workbook('All About Standards.xlsx')
sheet = wb["ETSI Catalog"]

etsi = []
for col in sheet['B']:
    etsi.append(col.value)

#print(etsi) # DEBUG PRINT
extractedEtsi = docRegex.findall(str(etsi))

# comparison code
for item1 in extractedHs:
    for item2 in extractedEtsi:
        if item1 == item2:
            print('Standard found: ' + item2)

Извините, если мое объяснение немного многословно, и я 'постараюсь объяснить дальше или упростить при необходимости.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...