1

好的,这是基本的python问题。我有一个简单的脚本来替换 html(txt) 文件上的文本。我写了一些代码并放入了一些我想替换的具有 xhtml 编码的换行 html,所以我尝试编写一个 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

嗯?在 python 2.7 中使用 OS X Lion。我错过了一些简单的东西?还使用 Gedit 3.2.6 作为编辑器。有什么帮助吗?

4

1 回答 1

1

You're shortening the content of the file, but you're not shortening its length. Don't forget to do so via .truncate() before closing.

于 2012-06-02T05:54:40.693 回答