python文件输入输出添加最后三个字符

标签 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作为编辑器。有什么帮助吗?

最佳答案

您正在缩短文件的内容,但并未缩短其长度。不要忘记在关闭之前通过 .truncate() 执行此操作。

关于python文件输入输出添加最后三个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10860140/

相关文章:

python - 类型错误 : only length-1 arrays can be converted to Python scalars while trying to exponentially fit data

python - 根据其他数据帧中的列标题成员资格(按日期)在 pandas 数据帧(按日期)中设置 boolean 值

macos - 我的目标与 brew 中的库动态链接。如何捆绑分发?

python - GEdit/Python 执行插件?

python - C++ 与 Python 函数通信

python - pip 安装包时禁用警告

c++ - SFML 库未加载错误,未找到图像

macos - 如何在 OS X 上轻松安装 arm-elf-gcc?

GEdit 中的 Python 运行快捷方式

c++ - 当代码太长时,方法的大括号不匹配