这是一个文件
APPLE: toronto, 2018, garden, tasty, 5
apple is a tasty fruit
>>>end
Orange: japan, 32, home, sour, 1
orange is a sour fruit
>>>end
graEes: america, 24, organic, sweet, 4
grapes is a sweet fruit
>>>end
这是一个文件,也有换行符。 我想用文件创建一个字典。就像这样
函数是def f(file_to:(TextIO))-> Dict [str,List [tuple]]
file_to是输入的文件名,它将返回字典,例如
{'apple': ['apple is a tasty fruit', 2018, 'garden', 'tasty', 5], orange:['orange is a sour fruit', 32,'home', 'sour',1] then grapes......}
每种水果都是关键,它们的描述是在那里格式化的值。每个水果都以>>> end
结尾我尝试过
with open (file_to, "r") as myfile:
data= myfile.readlines()
return data
它使用/ n返回列表中的文件字符串,我想我可以使用strip()删除该字符串,并获取':'之前的元素作为键。
答案 0 :(得分:2)
对于这个简单的示例,以下给出了所需的结果。 (尽管您可能对葡萄拼错了。)
from pprint import pprint
import re
def main():
fin = open('f1.txt', 'r')
data = {}
key = ''
parsed = []
for line in fin:
line = line.rstrip()
if line.startswith('>'):
data[key] = parsed
parsed = []
elif ':' in line:
parts = re.split('\W+', line)
key = parts[0].lower()
parsed += parts[2:]
else:
parsed.insert(0, line)
fin.close()
pprint(data)
main()