我有一个文本文件如下:
myfile.txt
[items]
colors = red, purple, orange, blue
[eat]
food = burgers, pizza, hotdogs
[furry]
animals = birds, dogs, cats
我有一本字典:
my_dict = {'colors':'green, black','animals':'donkey, tigers'}
我想打开文件 myfile.txt,搜索文件中的键,并将行替换为my_dict的值,这样myfile. txt看起来应该是:
myfile.txt
[items]
colors = green, black
[eat]
food = burgers, pizza, hotdogs
[furry]
animals = donkey, tigers
我试过做一些事情,比如:
def func(my_dict):
# Read in the file
with open('myfile.txt', 'r') as file :
filedata = file.read()
# Replace the target string
filedata = filedata.replace('colors', my_dict)
# Write the file out again
with open('myfile.txt', 'w') as file:
file.write(filedata)
问题是我得到的输出如下:
myfile.txt
green, black = red, purple, orange, blue
3条答案
按热度按时间xcitsw881#
新版本保留没有等号的文本
旧版本
bmp9r5qi2#
你已经给出了一个函数,这个函数把my_dict当作一个字符串,但是你在replace方法中把它当作了一个字符串。你应该给出你是如何调用函数的。但是,这是解决方案。注解解释了发生了什么。我没有从文件中阅读,而是创建了一个和你的文件内容一样的字符串。你可以改变相关的部分。我们使用了split方法来把作为键和值对。
agyaoht73#
您需要在等号上拆分句子(行),并替换等号的第二部分。
编写时,语法应该相同。