我编码一个简单的Python脚本,解析一个文本文件,正在寻找一个字符串,如果这个字符串被发现比将替换字符串与另一个字符串,如果这个搜索字符串是找不到比将追加一个字符串。Python的搜索/重新readline和如果其他
我想一定是这样的:
#!/usr/bin/python2
import fileinput, glob, string, sys, os
from os.path import join
myfile="textfile.txt"
search_string="pussy"
replace_string1="tutti"
replace_string2="frutti"
replace_strings = replace_string1 + '\n' + replace_string2
stext = str(search_string);
rtext = str(replace_strings);
print "finding:\n" + stext + "\n\nreplacing with:\n" + rtext + "\n\nin:\n" + myfile
for line in fileinput.input(myfile,inplace=1):
lineno = 0
lineno = string.find(line, stext)
if lineno >=0:
line = line.replace(stext, rtext)
sys.stdout.write(line)
else:
print "append line"
所以,如果我用这个该脚本将if语句和else跑!哪里不对?
您需要使用发布一个Python的问题时,正确的压痕;你的'if lineno> = 0'测试甚至不是'fileinput.input()'循环的一部分,并且它之前的行使用3个空格而不是4个,但是后面的行* do *使用4.所有这些都会导致代码无效。 –
你想用'lineno'变量做什么? 'lineno'是**总是**将变为'0',所以'lineno> = 0'总是如此。 –
是否要将文本追加到文件的末尾,并且只有在未找到搜索文本时?是否应该*所有*搜索文本被替换,或仅替换第一个? –