Python3 脚本使用元组在多个文件中查找和替换字符串

Python3 script use tuple to find and replace string in multiple files

我目前在 python 脚本中使用列表 ['/etc/hostname', '/opt/sme/sme.conf'],并在列表中的那些文件中查找并用 newhostname 替换 oldhostname,这有效伟大的。

filelist = ['/etc/hostname', '/opt/sme/sme.conf']  
for filename in filelist :  
    f = open(filename,'r')
    filedata = f.read()
    f.close()

    newdata = filedata.replace('oldhostname',newhostname)

    f = open(filename,'w')
    f.write(newdata)
    f.close()

现在我必须替换文件中的环境值。而不是重复上面的代码两次来替换文件中的环境值。有人可以建议如何使用元组作为输入来编写上面的代码。 [('newhostname',oldhostname,'/etc/hostname'),('newhostname',oldhostname,'/opt/sme/sme.conf'),('appenv',newappEnv,'/opt/sme/sme.conf')]

你要找的是元组解包

new_configurations = [('newhostname',oldhostname,'/etc/hostname'),('newhostname',oldhostname,'/opt/sme/sme.conf'),('appenv',newappEnv,'/opt/sme/sme.conf')]

for newhostname, oldhostname, filename in new_configurations : 
    f = open(filename,'r')
    filedata = f.read()
    f.close()

    newdata = filedata.replace(oldhostname,newhostname)

    f = open(filename,'w')
    f.write(newdata)
    f.close()