텍스트 파일 내에서 문자열을 검색하고 발견 된 행을 인쇄해야하는 프로그램에서 작업하고 있습니다. 다음 줄에 문제 : 내가 수동으로 성분에서 개최되는 문자열을 입력하지 않는 한문자열의 세그먼트가 "if"문에서 작동하지 않습니다.
if ingredient[8:] in line :
아무것도가 끝나지는, 인쇄되는 [8]. 예 :
if "tomato" in line :
이것은 완벽하게 작동합니다. 나는 왜 "토마토"나 "렌즈 콩"이 "성분 [8 :]"대신에 효과가 있는지 알 수 없습니다. 여기에 테스트 텍스트 파일에 저장되어있는 텍스트입니다
# VARIABLES
shoppingList=[]
# MOVE CONTENTS OF SHOPPING LIST FILE ONTO LIST
with open("Recipe Shopping List.txt") as f:
content = f.readlines()
def findRecipe():
# PROMPT USER FOR RECIPE NAME
print "Enter a recipe name: "
recipeInput = raw_input()
recipeIndex = content.index(" - " + recipeInput + "\n")
# PUT INGREDIENTS INTO SHOPPING LIST
for ingredient in content[recipeIndex+1:]:
if ingredient.startswith(" -"):
# FIND INGREDIENT'S CATEGORY IN CATEGORY FILE
with open("Ingredient Category List.txt") as categoryFile :
for line in categoryFile :
if ingredient[8:] in line :
print line
else:
break
findRecipe()
그리고 :
"성분 종류 List.txt 파일"
tomato - produce
carrot - produce
celery - produce
lentil - grains
다음
내 코드입니다 "Recipe Shopping List.txt"- Lentil soup
- 2 lentil
- 3 tomato
- 4 celery
- 4 carrot
- Gnocchi
- 1 tomato
- 3 gnocchi
- 2 onion
도움을 주셔서 감사합니다.
@leaf 답장을 보내 주셔서 감사합니다. '재료 '는 "- 2 렌즈 콩"과 같은 문자열을 가지고 있기 때문에 음식의 이름 만 들어있는 부분 문자열을 참조하려고 했으므로이 경우 성분 [8 :]이 "렌즈 콩"이 될 것이라고 생각했습니다 . '성분 [8 :]'을 인쇄 할 때, 나는 "렌즈 콩"을 얻고 그것은 str 타입입니다. – user1861051
내 잘못입니다. 나는 실수를 저질렀다. 내 의견을 삭제하겠습니다. –