我正在使用一个只能在bash中运行的科学软件(名为vasp),并使用Python创建一个脚本,该脚本将为我多次运行。当我正常地使用subprocess.check_call调用函数时,它工作得很好,但当我添加'| teetee_output‘时,它就不工作了。subprocess.check_call('vasp') #this works
subprocess.check_call('vasp | teetee_output') #this does
$ echo testing with this string | tee | python3 -c 'a=1'现在,将数据不带参数地传输到tee中,然后从tee到一个不向终端/标准输出提供任何输出的程序对,所以,如果我们用命令行参数/dev/stdout传递到tee,我们会得到两次打印输出--正如前面所得出的结论,生成这两行的必须是tee。这也解释了为什么上一次...| tee | python
/results/src/launcher/entrypoint.py \
> >(tee -a /results/stdout.txt) 2> >(tee -a /results/stderr.txtS 0:00 su -c /opt/conda/bin/python /results/src/launcher/entrypoint.p