Я пытаюсь сопоставить два txt-файла, а затем сохраняя индекс совпадающих местоположений в словаре python под названием tmp.Нет вывода, сгенерированного при использовании словаря python
Теперь я пытаюсь напечатать содержимое между индексом начального и конечным индексом на основе словаря ..
Некоторых ключевых/значений отсутствовал в словаре, поэтому я использовал значение по умолчанию Но теперь, когда я пытаюсь печать нужного результата, используя линии [S: е] он дает мне пустой вывод
в то время как значения по умолчанию есть ..
Надежда я в состоянии объяснить себе ..
Пожалуйста, смотрите в коде. .
код типа = Python
import re
content_file = open('/Users/ashishyadav/Downloads/pdfminer-20110515/samples/te.txt',"r")
product_file = open('/Users/ashishyadav/Desktop/AQ/te.txt',"r")
output = open("output.txt" , "w")
line = content_file.read().lower().strip()
tmp = {}
default=99
for k in tmp:
tmp[k]=default
prev=''
for prod in product_file:
for match in re.finditer(prod.lower().strip(), line):
prod = prod.replace("\r","")
prod = prod.replace("\n","")
if(prev!=''):
tmp[prev,'end_index']=match.start()
tmp[prod,'start_index']=match.start()
s=match.start()
e=match.end()
prev=prod
#print >>output, match.group(),"\t",
#print >>output, '%d:%d' % (s, e),"\n",
#print >>output, tmp,"\n"
^^ это сохранение местоположения индекса в словаре под названием TMP
from collections import defaultdict
tmp = defaultdict(lambda:99,tmp)
print tmp
print tmp[('Steakhouse Filet Salad', 'end_index')]
print tmp[('FRIED PICKLES', 'end_index')]
print tmp[('TEXAS T-BONE', 'end_index')]
значение Steakhouse филе Salad по умолчанию теперь 99 потому что это не в словарь
for prod in product_file:
for match in re.finditer(prod.lower().strip(), line):
prod = prod.replace("\r","")
prod = prod.replace("\n","")
print line[s:tmp[(prod,'end_index')]]
этого печатать строку [S: TMP [(прод, 'END_INDEX')]] давал ключ раньше, но теперь, когда значение по умолчанию равно 99, оно должно взять его и дать мне некоторый результат, но результат не генерируется.
Где находится 's' от последнего кода? –
Не обращайте внимания на это. Мне пришлось перезагрузить два файла снова после цикла, а затем использовать строку [tmp [prod, 'start_index']: tmp [(prod, 'end_index')]], и она отлично работала – ashishashen