#!/usr/bin/python
import socket
import subprocess
ip=socket.gethostbyname(socket.gethostname())
reps= {'application.baseUrl': 'application.baseUrl="http://'+ip+':9000"',
'baseUrl': 'baseUrl="http://'+ip+':9000"'
}
f = open('/opt/presentation/conf/application.conf','r+')
lines = f.readlines()
f.seek(0)
f.truncate()
for line in lines:
for key in reps.keys():
if key in line:
line = line.replace(line, reps[key])
f.write(line+'\n')
f.close()
问题:它正在取代应用程序.baseUrlbaseUrl=“http://'+ip+':9000而不是应用程序.baseUrl=“http://'+ip+':9000,因为baseUrl在应用程序.baseUrl. 你知道吗
只有当键匹配整个字符串而不是字符串的一部分时,如何替换它
文件名:abc.config文件你知道吗
你知道吗应用程序.baseUrl="http://ip:9000英寸
基本URL=“http://ip:9000英寸
远程{
log-received-messages = on
netty.tcp {
hostname = "ip"
port = 9999
send-buffer-size = 512000b
receive-buffer-size = 512000b
maximum-frame-size = 512000b
server-socket-worker-pool {
pool-size-factor = 4.0
pool-size-max = 64
}
client-socket-worker-pool {
pool-size-factor = 4.0
pool-size-max = 64
}
}
}
您可以改用正则表达式:
这将匹配
application.baseUrl
,替换为application.baseUrl=http://IP_ADDRESS_HERE:9000
,和baseUrl
,替换为baseUrl=http://IP_ADDRESS_HERE:9000
正则表达式说明:
以及替代品
因为您希望精确匹配而不是检查:
你应该做:
或者更好,正如亚当在下面的评论中所建议的:
相关问题 更多 >
编程相关推荐