用Python替换文件中的文本

6 投票
3 回答
2860 浏览
提问于 2025-04-15 23:25

我正在尝试用一个值替换文件中的一些文本。一切都运行得很好,但当我查看完成后的文件时,发现每一行后面都有一个新的(空白)行。有没有什么办法可以防止这种情况发生?

这是我写的代码:

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

谢谢,
Aaron

3 个回答

0

print 会在输出的最后加一个换行符:

在输出的最后会加上一个 '\n' 字符,除非这个打印语句的结尾有一个逗号。如果这个语句只有 print 这个关键词,那么就只会执行这个操作。

2

使用print line的时候,它会自动在输出的内容后面加一个换行符。为了避免这个情况,你最好用sys.stdout.write(line)来输出内容。

3

每一行内容都是从文件中读取的,包括行末的换行符,而打印的时候又会自己加一个换行符。

你可以:

print line,

这样做的话,就不会在行后面再加一个换行符了。

撰写回答