gpt4 book ai didi

python - 如何在文件中搜索值并替换

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:56 24 4
gpt4 key购买 nike

我有一个列表,其中包含要在文件中搜索的值和一个字典,其中包含应该替换的值,我给出了文件的示例内容和相同的输出,我不确定如何搜索和替换?任何人都可以提供指导吗?

   list_to_search =['TRC_BTM', 'TRC_HCI', 'TRC_L2CAP']
dict = {'TRC_BTM': '6', 'TRC_HCI': '6', 'TRC_L2CAP': '6'}

filename ='file.conf'
f = open(filename, 'r')
for value in list_to_search :
print "dummy"
#1.search value in file
#2.replace with dict[value]
f.close()

INPUT:-
#comment1
TRC_BTAPP only.
TRC_BTM=2
TRC_HCI=2
TRC_L2CAP=2
#comment2

OUTPUT:-
#comment1
TRC_BTAPP only.
TRC_BTM=6
TRC_HCI=6
TRC_L2CAP=6
#comment2
...

最佳答案

我为您准备了另一种解决方案,基本上是它的作用,您不是将文件的全部内容读入内存,而是逐行读取并检查您读取的每一行是否具有 list_to_search 的 元素之一,如果是则修改:

list_to_search =['TRC_BTM', 'TRC_HCI', 'TRC_L2CAP']
myDict = {'TRC_BTM': '6', 'TRC_HCI': '6', 'TRC_L2CAP': '6'}

filename ='file.conf'

with open(filename, 'rb+') as f:

while True:
line = f.readline()
if not line: break
for key in list_to_search:
if key in line:
f.seek(-len(line),1)
f.write(key + '=' + myDict[key] + '\n')
f.flush()

编辑:回应您的以下评论:

with open(filename, 'rb+') as f:

while True:
line = f.readline()
if not line: break
if '=2' in line:
f.seek(-len(line),1)
f.write(line.split('=2')[0]+'=6')
f.flush()

关于python - 如何在文件中搜索值并替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30795450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com