如何解决从 python 脚本调用 tee 命令时未创建文件
我有一些打印到 some_program
的程序(我们称之为 stdout
),所以当我从终端运行下面的命令时,会创建一个新文件 (test.bin
)使用从 stdout
的 some_program
生成的内容:
some_program | tee test.bin
但是,当我尝试从 python 脚本 (python-3.6) 运行 some_program
并将其通过管道传输到 tee
以创建文件 test.bin
时,它不起作用。我确实看到 some_program
正在运行并且完成了它的工作,但是 test.bin
没有被创建。
这是我的python脚本:
import subprocess
import os
CURR_DIR = os.getcwd()
OUTPUT_FILE = CURR_DIR + '/test.bin'
subprocess.check_output(['some_program','|','tee','{}'.format(OUTPUT_FILE)])
有什么想法吗?
谢谢
附言
我解决了这个问题:
stdout = subprocess.run(['some_program'],stdout=subprocess.PIPE).stdout
f = open(OUTPUT_FILE,'wb')
f.write(stdout)
f.close()
但我仍然很好奇为什么在使用 tee
时它不起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。