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

时间:2016-12-04 17:51:04

标签: python-3.4

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

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')]

1 个答案:

答案 0 :(得分:1)

您要找的是元组拆包

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()