在我的父脚本中,我执行以下操作:
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");
但这aslso不起作用。任何帮助,将不胜感激!
如果将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!
问题内容: 我有以下脚本: 我从打来电话: 而且效果很好。 但是,当我这样做时: 口译员挂了。我究竟做错了什么?我希望能够多次读写另一个进程,以将一些任务传递给该进程。我需要做些什么? 编辑1 如果使用,则会得到以下信息: 编辑2 我试过冲洗: 和这里: 但它再次挂起。 问题答案: 我相信这里有两个问题在起作用: 1)您的父脚本调用,它将读取所有数据,直到文件结束。但是,您的子脚本会无限循环运行,
问题内容: 我了解到,在Python中执行命令时,应该使用子进程。我想要实现的是通过ffmpeg对文件进行编码,并观察程序输出,直到文件完成。Ffmpeg将进度记录到stderr。 如果我尝试这样的事情: 调用child.communicate()后,程序无法继续执行,并等待命令完成。还有其他方法可以跟踪输出吗? 问题答案: communication()阻塞直到子进程返回,所以循环中的其余各行仅
问题内容: 我正在使用python脚本作为水动力代码的驱动程序。是时候运行模拟了,我用来运行代码,将和的输出收集到中,然后我可以打印(并保存到日志文件中)输出信息,并检查是否有错误。问题是,我不知道代码是如何进行的。如果我直接从命令行运行它,它将为我提供有关其迭代次数,时间,下一时间步长等的输出。 有没有办法既存储输出(用于日志记录和错误检查),又产生实时流输出? 我的代码的相关部分: 最初,我是
使用Windows下的Eclipse Juno,我配置了一个外部工具,该工具调用程序,并将Python脚本文件作为参数运行(后者位于双引号之间,如)。 我还再次检查了外部工具配置窗口中的“Common”选项卡中是否设置了“Allocate Console”选项。
我想将gradle脚本中的所有控制台输出记录到日志文件中: 但是我的gradle脚本提示用户参数: 因此,我有一个NullPointerException: 有人知道这种情况的解决方案或变通方法吗?
问题内容: 我有使用Python编写的自定义命令行,该命令行使用“ print”语句打印其输出。我通过生成一个子进程并使用 child.stdin.write 方法向其发送命令来从Node.js使用它。来源: 现在的问题是我没有以流动模式接收输出。我希望在打印子进程后立即获得它的输出,但是仅当子进程终止时(使用自定义cli的 quit 命令),我才接收所有命令的输出。 问题答案: 您需要在子进程中