好的,基本的python问题。我有一个简单的脚本来替换html(txt)文件上的文本。我写了一些代码,并添加了一些新行html,其中包含xhtml编码,我想替换,所以我尝试编写一个python脚本,用常规换行符html替换xhtml编码版本。 有时当我运行代码时,它工作正常,但有时它会重写文件,最后在换行符后重复最后两个字符。我在OS X Lion上运行2.7,如果这很重要的话。这是代码:
import sys
import re
def replace_text(filename):
with open(filename, 'r+') as f:
p = re.compile( '(</br>|<br/>|<br />)')
f_data = open(filename, 'r+').read()
f.write(p.sub('<br>', f_data))
f.close()
def main():
args = sys.argv[1:]
if not args:
print 'usage: [--summaryfile] file [file ...]'
sys.exit(1)
summary = False
if args[0] == '--summaryfile':
summary = Trye
del args[0]
for filename in args:
replace_text(filename)
if __name__ == '__main__':
main()
所以当我用一个包含内容的文件(比如'foo.txt')运行它时:
</br> <br/> <br /> <br> poop
有时输出:
<br> <br> <br> <br> poop
有时输出:
<br> <br> <br> <br> poop
op
是吗?使用OS X Lion和python 2.7。我想念一些简单的东西?还使用Gedit 3.2.6作为编辑器。有什么帮助吗?
答案 0 :(得分:1)
您缩短了文件的内容,但是您没有缩短文件的长度。在关闭之前不要忘记通过.truncate()
这样做。