Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python文件输入输出添加最后三个字符_Python_Macos_Gedit - Fatal编程技术网

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

python文件输入输出添加最后三个字符,python,macos,gedit,Python,Macos,Gedit,好的,基本的python问题。我有一个简单的脚本来替换html(txt)文件上的文本。我编写了一些代码并加入了一些换行html,其中包含我想要替换的xhtml编码,因此我尝试编写一个python脚本,用常规换行html替换xhtml编码版本。 有时当我运行代码时,它工作正常,但有时它会重写文件,最后在换行后重复最后两个字符。我在OSX Lion上运行2.7,如果这很重要的话。代码如下: import sys import re def replace_text(filename):

好的,基本的python问题。我有一个简单的脚本来替换html(txt)文件上的文本。我编写了一些代码并加入了一些换行html,其中包含我想要替换的xhtml编码,因此我尝试编写一个python脚本,用常规换行html替换xhtml编码版本。 有时当我运行代码时,它工作正常,但有时它会重写文件,最后在换行后重复最后两个字符。我在OSX 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()
导入系统 进口稀土 def replace_文本(文件名): 将open(文件名为“r+”)作为f: p=重新编译(“(
|
|
”)) f_data=open(文件名为'r+')。read() f、 写入(p.sub(“
”,f_数据)) f、 关闭() def main(): args=sys.argv[1:] 如果不是args: 打印“用法:[--summaryfile]文件[文件…]” 系统出口(1) 摘要=错误 如果args[0]='--summaryfile': 摘要=Trye del args[0] 对于args中的文件名: 替换_文本(文件名) 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': main() 因此,当我使用包含以下内容的文件(比如“foo.txt”)运行它时:

</br> <br/> <br /> <br> poop





大便
有时它输出:

<br> <br> <br> <br> poop
<br> <br> <br> <br> poop
op



大便
有时它输出:

<br> <br> <br> <br> poop
<br> <br> <br> <br> poop
op



大便 op

嗯?在Python2.7中使用OSXLion。我错过了一些简单的事情?还使用Gedit 3.2.6作为编辑器。有什么帮助吗?

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

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

巨大成功。非常感谢你!另外,请原谅我在这里的缩进错误,代码是正确缩进的,但我正在通过Win7虚拟OS X Lion,而且它运行得并不完美,因此我无法通过键盘命令并将代码复制到表单中。我也是stackoverflow的新手(显然是因为我的名声)。但是你抓住了我愚蠢的错误,真是太棒了。谢谢,非常成功。非常感谢你!另外,请原谅我在这里的缩进错误,代码是正确缩进的,但我正在通过Win7虚拟OS X Lion,而且它运行得并不完美,因此我无法通过键盘命令并将代码复制到表单中。我也是stackoverflow的新手(显然是因为我的名声)。但是你抓住了我愚蠢的错误,真是太棒了。谢谢