我想用db_host
替换密钥(即addons_path
,$$$$
)的值。密钥和值都应由用户提供。
我的功能应该提出两个问题:
如果用户说key = db_host
和value = $$$$$
,则应该在文本文件中更新该值。
输入文本文件包含以下内容:
#Test.txt#
addons_path=/bin/root
admin_passwd = abctest
auto_reload = False
csv_internal_sep = ,
db_host = 90.0.0.1
更新了文字文件:
#Test.txt#
admin_passwd = abctest
auto_reload = False
csv_internal_sep = ,
db_host = $$$$$
我想替换特定键的值并将其写入文件,而不是用新文件替换旧文件。
以下函数为我提供了替换文件中值的正确输出。如何通过用户输入更改它?
def replace_in_file(filename, key, new_value):
f = open('/Files/test2', "r")
lines = f.readlines()
f.close()
for i, line in enumerate(lines):
if line.split('=')[0].strip(' \n') == key:
lines[i] = key + ' = ' + new_value + '\n'
f = open('Files/test2', "w")
f.write("".join(lines))
f.close()
replace_in_file("file.txt", 'db_host', "22222")
答案 0 :(得分:2)
如果我理解得很好,你就需要这个:
key = raw_input("which key you want to update? : ")
value = raw_input("Which value you want to update? : ")
程序将在每种情况下等待用户输入。 然后'key'和'value'变量将包含用户给出的值......
答案 1 :(得分:0)
这可能有用!
def replace_in_file(filename, key, new_value):
f = open('/home/tactix4/Pictures/Ami/Files/tactix4_replace_key/test2', "r")
lines = f.readlines()
f.close()
for i, line in enumerate(lines):
if line.split('=')[0].strip(' \n') == key:
lines[i] = key + ' = ' + new_value + '\n'
f = open('/home/tactix4/Pictures/Ami/Files/tactix4_replace_key/test2', "w")
f.write("".join(lines))
f.close()
replace_in_file("test2", key, value)
key = raw_input("which key you want to update? : ")
value = raw_input("Which value you want to update? : ")