在我的程序開始時,我打開了一個文件f = open("foods.txt", "r+")
。後來我打電話給我創建的這種方法第二次閱讀時在文本文件中查找項目
def findFood(food):
foodRegex = re.compile(r'(?P<food>\S+)\s+\-.*')
for line in f.readlines():
print line
duplicateFound = re.search(foodRegex, line)
if duplicateFound.group('food') == food:
return duplicateFound
else:
return False
但是我再次運行該方法。但是我的程序無法按照我想要的方式工作。具體
def build_meal_plan():
number_of_items = int(raw_input("How many items would you like to add to your meal plan? "))
count = 0
while number_of_items > 0:
print count
food = raw_input("Enter in food name: ")
print food
if findFood(food):
servings = int(raw_input("Number of servings: "))
else:
print "Food not found! Try again? (y/n): ",
choice = raw_input()
if choice == 'y' or choice == "yes":
number_of_items += 1
else:
return
但是我findFood
法的第二次運行期間,我無法找到我知道一個項目.txt
文件中存在。我不知道爲什麼我在第一次運行期間找不到在文本文件中找到的相同項目。我的假設是,你只能經歷一次txt文件。
一旦你調用'f.readlines()',你就在文件的末尾。你需要'f.seek(0)'返回到開始。或者,將文件導入到列表中並對其進行處理。 – jonrsharpe
@jonrsharpe在這裏仍然學習python。您能否詳細說明「或者,將文件導入到列表中並對其進行處理」 – Liondancer