gpt4 book ai didi

Python 从子脚本输出到子进程中的控制台

转载 作者:行者123 更新时间:2023-11-28 17:43:41 25 4
gpt4 key购买 nike

在我的父脚本中,我执行以下操作:

fout=open(outfile,"w")
ferr = open(errfile,"w")

subprocess.call("1.py",stdout=fout,stderr=ferr,shell=True)

1.py 脚本中,我希望大部分日志消息转到日志文件,但有些消息,我想根据打印条件在控制台上打印:

print "Hello World"

但它正在打印到 outfile,我也想在控制台上打印,我尝试这样做

sys.__stdout__.write("Hello World");

但这也行不通。任何帮助将不胜感激!

最佳答案

如果 stdout、stderr 被重定向,那么您可以尝试直接打印到控制台:

try: # Windows
from msvcrt import putwch

def print_to_console(message):
for c in message:
putwch(c)
# newline
putwch('\r')
putwch('\n')
except ImportError: # Unix
import os

fd = os.open('/dev/tty', os.O_WRONLY | os.O_NOCTTY)
tty = os.fdopen(fd, 'w', 1)
del fd
def print_to_console(message, *, _file=tty):
print(message, file=_file)
del tty

例子:

print_to_console("Hello TTY!")
# -> Hello TTY!

关于Python 从子脚本输出到子进程中的控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20980965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com