Python 如何从文件中读取、转换为字典并写入同一文件
嘿,那里 我正在尝试从同一个文件读写。 我的计划是,基本上我将读取文本文件的内容,将其放入词典,然后编辑此词典,然后将其放回文本文件,以便在其他地方读取词典 我以前没有做过类似的事情,所以我需要一些想法,也许是视觉上的例子(我会非常感激)。Python 如何从文件中读取、转换为字典并写入同一文件,python,text,dictionary,Python,Text,Dictionary,嘿,那里 我正在尝试从同一个文件读写。 我的计划是,基本上我将读取文本文件的内容,将其放入词典,然后编辑此词典,然后将其放回文本文件,以便在其他地方读取词典 我以前没有做过类似的事情,所以我需要一些想法,也许是视觉上的例子(我会非常感激)。 我想做的一个例子: [Running Python 2.7 on MacOSX] 现在我需要把它转换成一本字典,我们称之为“水果” Apple Green Lemon Yellow Grape Purple 现在我们想把苹果的颜色改成红色 frui
我想做的一个例子:
[Running Python 2.7 on MacOSX]
现在我需要把它转换成一本字典,我们称之为“水果”
Apple Green
Lemon Yellow
Grape Purple
现在我们想把苹果的颜色改成红色
fruit = {'Apple' : 'Green', 'Lemon' : 'Yellow', 'Grape' : 'Purple'}
最后将其放回文本文件/覆盖以前的文本文件,以便以后可以在其他地方打开并制作成新的词典以供使用:
fruit = {'Apple' : 'Red', 'Lemon' : 'Yellow', 'Grape' : 'Purple'}
我真正需要的是找到最好的方法,我还没有做任何尝试,所以我正在寻求一些建议最后一步,将字典转换回那种格式是我无法做到的。
谢谢,
zahz将文件读入字典非常简单。下面是一个简单的方法:
Apple Red
Lemon Yellow
Grape Purple
做同样事情的更简洁的方法:
d = {}
with open(filename) as f:
for line in f.read().split('\n'):
key, value = line.split()
d[key] = value
这不会显式地。关闭带有with块的文件,而Python会在垃圾收集IIRC时关闭该文件
写出文件也同样简单:
d = dict(map(str.split, open(filename)))
或者更简洁地说:
with open(filename, 'w') as f:
for key, value in d.items():
f.write('{} {}\n'.format(key, value))
这采用了一种不同的方法,将整个字典写成一个字符串,迭代版本一次写出一行。哪一个更好取决于你。你提到的这三个步骤似乎是一个合理的方法。我知道,但我似乎无法做到这一点。特别是将其转换回原始格式,其余的我不应该有问题。您希望文本文件是人类可读的还是仅由Python程序可读?对于后者,您可以使用.OrderedDict可能有点用处,但不是必需的。您需要保留顺序吗?还是不要紧?f.truncate()
在w
模式下打开文件时不需要,因为它已经覆盖了文件。啊,谢谢您的回答。我通常出于习惯把它放在那里。删除:)答案已接受。谢谢你,你用不同的方法解释得很好。有帮助。
open(filename, 'w').write('\n'.join('{} {}'.format(key, d[key]) for key in d))