好的,这是基本的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作为编辑器。有什么帮助吗?
最佳答案
您正在缩短文件的内容,但并未缩短其长度。不要忘记在关闭之前通过 .truncate()
执行此操作。
关于python文件输入输出添加最后三个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10860140/