首页 > 解决方案 > 使用inplace = True时如何在控制台上打印?

问题描述

使用时for line in fileinput.input(file, inplace=True),任何print命令都将在文本文件中打印,而不是在控制台上。但我想用来print调试。那么如何实现打印到控制台之后for line in fileinput.input(file, inplace=True)呢?

标签: python

解决方案


有效地将标准输出重定向到您正在读取的文件的inplace=True参数。fileinput.input您可以使用关键字参数指定要写入的不同文件。printfile

import sys
import fileinput


for line in fileinput.input(file, inplace=True):
    print("new content")
    print("debugging", file=sys.stderr)

如果你从

a
b
c

那么你的文件看起来像

a
new content
b
new content
c
new content

在这个循环运行之后,你会看到

debugging
debugging
debugging

写入标准错误。


推荐阅读