Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 试图从文本文件中的行创建字典,但代码始终返回空字典?_Python_File_Python 3.x_Dictionary - Fatal编程技术网

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

Python 试图从文本文件中的行创建字典,但代码始终返回空字典?,python,file,python-3.x,dictionary,Python,File,Python 3.x,Dictionary,我打开了一个文件进行阅读,我想分析每一行。如果行满足条件,我想将该行添加到字典中。但是这段代码总是返回一个空列表!你能指出你发现的错误吗 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 colo

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

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':,'Derk 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真的很陌生,所以请对我放松点

删除返回字典-这毫无意义 if语句可能没有在您预期的情况下返回True。尝试打印循环中的每一行-是否有“\n”字符将事情搞砸了?尝试在file.read.splitlines上而不是在file.read.splitlines上迭代
我认为你必须这样做:

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()
文件中的行是“行\n”


返回字典是你在函数中展示给我们的吗?我不知道是谁投票支持这个问题。看起来好像有人在睡觉的时候在用,你能给我们看看你的文件的一些部分以及你想要的输出吗?我看不到任何函数和列表。哎哟,你说得对。我完全忘了包含函数定义。你确定dictionary[line]=line吗?这一行毫无意义。事实上,是的,这是错误的。字典[行]=
'line\n' != 'line'