我有一个文件FF\u tuningConfig\u AMPKi.xml,包含如下记录:
<KiConfig active="%{active}" id="AMP_RET_W_LIN_SUSPICIOUS_MULTIPLE_LOGIN_IN_SHORT_PERIOD$KiConfig"/>
<KiConfig active="%{active}" id="AMP_RET_W_LIN_UNUSUAL_SESSION_HOUR_OF_DAY$KiConfig"/>
我有以下代码:
def replace_content(path,se,search,String_Replace):
for root, dirs, files in os.walk(path):
for filename in files:
if((se in filename)):
file=open(os.path.join(root, filename),'r')
lines = file.readlines()
file=open(os.path.join(root, filename),'w')
for line in lines:
if search in line:
#print "found="+line
words=line.split('=')
# print words
# print "line=" + words[0] +"="+ "8\n"
line=line.replace(line,String_Replace)
#print "after="+line
file.write(line)
file.close()
print (os.path.join(root,filename) + " was replaced")
replace_content(Path,'FF_tuningConfig_AMPKi.xml','<KiConfig active="%{active}"','<KiConfig active="true"')
我得到以下信息:
active="true" <Thresholds>
而不是:
<KiConfig active="true" id="AMP_RET_W_LIN_UNUSUAL_SESSION_HOUR_OF_DAY$KiConfig"/>
你的问题是
line=line.replace(line,String_Replace)
。看一下str.replace()的文档为了测试您的代码,您可以编写一个单独的脚本,其中只包含似乎失败的部分
这使您能够集中精力解决问题,并使修改和测试代码变得简单快捷。一旦你有了这个功能,复制并粘贴到你的工作代码中。如果您的代码的这一部分实际工作,那么您已经消除了它作为错误源,您可以测试其他部分
另外,在尝试替换之前,不需要测试搜索字符串是否在行中。如果搜索字符串不在该行中,
str.replace()
将返回该行而不进行修改相关问题 更多 >
编程相关推荐