프로젝트 코드를 작성하고 텍스트 파일에서 각 행의 단어를 찾습니다. 내가 예제 텍스트 파일을 사용하고 단어를 검색 할 때 검색 한 단어가 들어 있어도 "No results for :"이 항상 인쇄됩니다. 사전을 틀리게 설정 했나요?파이썬 사전 검색에서 문자열이 주어진 결과를 찾지 못했습니다.
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 14 11:31:17 2017
@author: Ben Roux
"""
import re
from collections import Counter
stringinput = raw_input("Please enter a filename to open: ")
dictionary = {}
def openFile(stringinput):
try:
filevariable = open(stringinput, 'r')
return filevariable
except IOError:
print("Cannot Find File!")
def readData(stringinput):
filevariable = open(stringinput, 'r')
rawline = filevariable.readline()
line = 1
while (rawline !=""):
pl1 = rawline.replace(",","")
pl2 = pl1.replace("'","")
pl3 = pl2.replace("!","")
pl4 = pl3.replace("-"," ")
pl5 = pl4.replace(".","")
pl6 = re.sub('(\\b[A-Za-z] \\b|\\b [A-Za-z]\\b)', '', pl5)
pl7 = pl6.lower()
checkdictionary = sorted(Counter(pl7.split()).items())
for i in range(len(checkdictionary)):
if checkdictionary[i] in dictionary:
firstvalue = dictionary.get(checkdictionary[i])
newvalue = str(firstvalue) + ", " + str(line)
d1 = {checkdictionary[i]: newvalue}
dictionary.update(d1)
else:
d2 = {checkdictionary[i]: line}
dictionary.update(d2)
rawline = filevariable.readline()
line+=1
def processText(dictionary, searchkey):
if searchkey in dictionary:
print(str(searchkey) + " Appears On Lines: " + (str(dictionary[searchkey])))
else:
print("No results for: " + str(searchkey))
while (True):
try:
openFile(stringinput)
readData(stringinput)
searchkey = raw_input("Enter a keyword to search for: ")
processText(dictionary, searchkey)
break
except IOError:
break
에 당신이 당신의'processText (사전, searchkey)를 실행하기 전에'을 사전의 내용을 인쇄하여 전체가 채워 졌는지 확인하십시오. – AK47
{('dog', 1) : 3, ('yellow', 1) : 2, ('fox', 1) : 1 ('연', 1) : '2, 4', ('녹색', 1) : 4, ('갈색', 1) : '1, 3'} 아치 '여우'에 대한 검색 결과가 없습니다. –
그럼 사전이 제대로 작성되지 않았습니다. 당신의 열쇠는 튜플입니다. '{ 'dog': 1, 'yellow': 1, ...}'또는'{ 'dog': 3, 'yellow': 2, ...}'와 같은 것이어야합니다. '('fox', 1)''1 '' 값을 반환합니다 – AK47