输入最后三个字符的python文件输入

时间:2012-06-02 05:51:28

标签: python macos gedit

好的,基本的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作为编辑器。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

您缩短了文件的内容,但是您没有缩短文件的长度。在关闭之前不要忘记通过.truncate()这样做。