从文件中读取并检查单词是否在列表中

我的妻子给我发短信,杂乱无章,而且杂货清单很长。我会将她的名单粘贴到一个文本文件中。我想编写一个程序,将删除她的无序列表并将有序列表写入该文件。一起吃水果,一起吃肉等等。显然,这个计划还处于起步阶段。在我的文本文件中,我写道:


banana

apple

在这种情况下,当我遍历文本文件的每一行时,我希望item被附加到水果?但事实并非如此。我错过了什么?


fruit = []

vegetables = []

meat = []

dairy = []

fruit_list = ["banana", "apple", "orange"]


def read_list():

    with open("/storage/emulated/0/textfiles/grocery.txt", "r") as r:

        for item in r:

            if item in fruit_list:

                fruit.append(item)

    print(fruit)


慕侠2389804
浏览 137回答 2
2回答

SMILET

您需要从文件中删除行结尾,因为它们在结尾处带有\n或\r\n(Windows 回车符)。这意味着你是比较banana有banana\n,这是不相等的,导致没有被追加。您可以str.strip()像这样预先使用来解决这个问题:item = item.strip()if item in fruit_list:    # rest of code或者你可以直接从右边剥离str.rstrip():item = item.rstrip()if item in fruit_list:    # rest of code您还可以在迭代时删除所有内容map():for item in map(str.strip, r):    # rest of code但是前两个解决方案没问题。

子衿沉夜

用于.rstrip()从行尾剪切 '\n' 符号def read_list():    with open("grocery.txt", "r") as r:        for item in r:            if item.rstrip() in fruit_list:                fruit.append(item)    print(fruit)read_list()您也可以item.rstrip().lower()用来检查以大写字母开头的项目
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python