【问题标题】:Replace text in file with Python用 Python 替换文件中的文本
【发布时间】:2011-02-26 11:12:06
【问题描述】:

我正在尝试用一个值替换文件中的一些文本。一切正常,但是当我在文件完成后查看文件时,文件中的每一行之后都有一个新的(空白)行。我可以做些什么来防止这种情况发生。

这是我拥有的代码:

  import fileinput
    for line in fileinput.FileInput("testfile.txt",inplace=1):
       line = line.replace("newhost",host)
       print line

谢谢你, 亚伦

【问题讨论】:

    标签: python file text replace


    【解决方案1】:

    print 添加换行符:

    除非 print 语句以逗号结尾,否则在末尾写入一个 '\n' 字符。如果语句仅包含关键字 print,则这是唯一的操作。

    【讨论】:

      【解决方案2】:

      从文件中读取每个line,并以换行符结尾,打印添加自己的一个。

      你可以:

      print line,
      

      不会在行后添加换行符。

      【讨论】:

      • 所以事实证明我遇到了问题。出于某种原因,当我执行此文本替换时,文件正在发生其他事情。我使用一个名为 TextWrangler 的程序进行文本编辑,当我尝试打开文件时,它告诉我“发生了意外的 I/O 错误(MacOS 错误代码:-36)。在此“查找和替换”之前,它可以正常打开。任何想法什么可能导致这样的事情?
      • 我刚刚看到,当我尝试从终端查看原始文件时,它会询问我是否要查看,因为它是二进制文件。也许这就是问题所在?
      • @Aaron:也许你有两个操作系统之间的换行问题?我建议您准确定义问题并提出一个新问题。尝试包含尽可能多的信息
      【解决方案3】:

      print line 自动添加换行符。你最好改用sys.stdout.write(line)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-30
        • 2022-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        相关资源
        最近更新 更多