试图从文本文件中的行创建字典,但代码始终返回空字典?

2024-03-28 23:09:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我打开了一个文件进行阅读,我想分析每一行。如果行满足一个条件,我想将该行添加到字典中。但是这个代码总是返回一个空列表!你能指出你发现的错误吗?你知道吗

dictionary = {}
file = open("text_file.txt", "r")

colors = ("Bright red", "Light green", "Sky blue", "Dark brown")

def read_file(file):
   for line in file:
       if line in colors:
           dictionary[line] = ''
return dictionary
file.close()

输入时:

read_file(file) 

它不是创建一个看起来像{'Bright red': '', 'Light green': '', 'Sky blue': '', 'Dark brown': ''}的字典,而是返回{}。你知道吗

该文件是一个文本文件,看起来像:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Bright red
Aliquam et magna at orci lobortis blandit.
Phasellus mattis velit auctor libero rhoncus semper.
Curabitur vitae sapien ac sem lobortis egestas.
Light green
Sed vitae augue sit amet lectus consectetur consectetur.
Sed bibendum metus vel libero porta, eu malesuada nibh mattis.
Sky blue
Dark brown

不知道为什么每行的第一个单词都突出显示。。但这就是文本文件的样子。你知道吗

我对python真的很陌生,所以请对我宽容一点。你知道吗


Tags: 文件dictionary字典linegreenblueredfile
2条回答
  1. 删除return dictionary-这没有意义
  2. if语句可能不会在您预期的情况下返回True。请尝试打印循环中的每一行-是否有“\n”字符将事情搞砸了?尝试迭代file.read().splitlines()而不是file

我认为你必须这样做:

dictionary = {}
file = open("text_file.txt", "r")

colors = ("Bright red", "Light green", "Sky blue", "Dark brown")

for line in file:
    if line[0:-1] in colors:
        dictionary[line] = ""
file.close()

文件中的行是'line\n'。你知道吗

'line\n' != 'line'

相关问题 更多 >