【发布时间】:2018-11-28 17:08:01
【问题描述】:
所以这是一个文件
APPLE: toronto, 2018, garden, tasty, 5
apple is a tasty fruit
>>>end
apple is a sour fruit
>>>end
grapes: america, 24, organic, sweet, 4
grapes is a sweet fruit
>>>end
这是一个也有换行符的文件。 我希望 tp 使用该文件创建一个字典。是这样的
函数是def f(file_to: (TextIO))-> Dict[str, List[tuple]]
file_to 是输入的文件名,它会返回字典,
{'apple': [('apple is a tasty fruit', 2018, 'garden', 'tasty', 5), (apple is a sour fruit)], 'grapes':['grapes is a sweet fruit', 24, 'organic', 5)]}
每个水果都是关键,它们的描述是在那里格式化的值。每个水果都在 >>>end
结束我试过了
with open (file_to, "r") as myfile:
data= myfile.readlines()
return data
它用 /n 返回列表中的文件字符串,我想我可以使用 strip() 来删除它并获取 ':' 之前的元素作为键。
我试过的代码是
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()
它没有给出正确的预期结果:(
【问题讨论】:
-
您的尝试与注释不匹配。
-
为什么不直接使用 JSON 或 XML?
-
@DennisPatterson 听起来他们正在收到一个要求并且无法更改流程(给定函数 sn-p)
标签: python file dictionary