如何以Python特定的文件类型将文件读入字典
具体地说,我有一个文本文件,它有多行排列,因此每个条目的键都是组的第一行,后面是它的相关值,后面是下一个键之前的换行符。我很难用while循环来实现这一点 例如,第一行可能是一个餐厅名称,后面是几行在那里用餐的顾客,然后我需要将其写入字典中餐厅名称键下的值中 我真的不熟悉文件读取,所以我担心我所拥有的不会有任何帮助 我猜是这样的,但它甚至没有达到半功能的程度 编辑:感谢我本应该澄清的回答,对应键的每个值项都列在该键之后的后续行中,下一个键之前的列表末尾有一个空行。不幸的是,我不得不在这里使用readline方法如何以Python特定的文件类型将文件读入字典,python,dictionary,while-loop,Python,Dictionary,While Loop,具体地说,我有一个文本文件,它有多行排列,因此每个条目的键都是组的第一行,后面是它的相关值,后面是下一个键之前的换行符。我很难用while循环来实现这一点 例如,第一行可能是一个餐厅名称,后面是几行在那里用餐的顾客,然后我需要将其写入字典中餐厅名称键下的值中 我真的不熟悉文件读取,所以我担心我所拥有的不会有任何帮助 我猜是这样的,但它甚至没有达到半功能的程度 编辑:感谢我本应该澄清的回答,对应键的每个值项都列在该键之后的后续行中,下一个键之前的列表末尾有一个空行。不幸的是,我不得不在这里使用re
restaurants = {}
patrons = []
line = file.readline()
s = line.strip('\n')
while s != ''
restaurant = s
line = file.readline
patrons.append(s)
编辑:根据新问题规范进行修订
with open("filename") as f:
lines = f.readlines()
restaurants = {}
current_key = None
for line in lines:
line = line.strip()
if not line:
current_key = None
elif not current_key:
current_key = line
restaurants[current_key] = []
else:
restaurants[current_key].append(line)
如您所说,如果由于某种原因,您确实无法在此处使用
readlines()
,只需将for
循环重写为,而循环一次读取一行,直到EOF。编辑:根据新的问题规范进行修订
with open("filename") as f:
lines = f.readlines()
restaurants = {}
current_key = None
for line in lines:
line = line.strip()
if not line:
current_key = None
elif not current_key:
current_key = line
restaurants[current_key] = []
else:
restaurants[current_key].append(line)
如您所说,如果由于某种原因确实无法在此处使用readlines()
,只需将for
循环重写为,而循环每次读取一行,直到EOF。假设您的文本文件如下所示
麦当劳比尔·波·鲍勃
依照
我有一个多行排列的文本文件,以便
每个条目都是组的第一行,后面是相关的
值,后跟换行符
那会产生什么
{'mcdonalds': ['bill', 'bo', 'bob']}
假设您的文本文件如下所示
麦当劳比尔·波·鲍勃
依照
我有一个多行排列的文本文件,以便
每个条目都是组的第一行,后面是相关的
值,后跟换行符
那会产生什么
{'mcdonalds': ['bill', 'bo', 'bob']}
请编辑您的帖子以包含您尝试的解决方案。大家会给你指出正确的方向。另外,你能提供一个输入和输出的例子吗?为什么你“不幸地被迫在这里使用readline方法”而不是readlines()
方法?请编辑你的文章,包括你尝试的解决方案。大家会给你指出正确的方向。另外,你能提供一个输入和输出示例吗?为什么你“不幸地被迫在这里使用readline方法”而不是readlines()
方法?