gpt4 book ai didi

python - 从 Python 脚本重定向 subprocess.run() stderr

转载 作者:太空宇宙 更新时间:2023-11-03 20:06:19 25 4
gpt4 key购买 nike

上下文:我正在使用 SRA 工具包从 SRA 下载加入品。下载 .sra 文件后,需要使用 vdb-validate accession 来检查其完整性,该命令会将 stderr 输出到终端。我想将此 stderr 捕获到文件中以供稍后处理。

问题:虽然vdb-validate accession &>validation_file.txt工作正常,但将stderr存储在validation_file.txt中并且不向终端打印任何内容;使用 subprocess.run(["vdb-validate", accession, "&>",validation_file]) 从 Python 脚本中使用 subprocess.run() 调用相同的命令后 (accession 和validation_file 是变量) 输出被打印到终端,并且没有任何内容写入文件。

提前致谢。

注意:我在 Linux 服务器上使用 Python 3.6.8

最佳答案

子进程允许您捕获stdout:

>>> subprocess.check_output(["echo", "Hello World!"])
'Hello World!\n'

您也可以使用stderr=subprocess.STDOUT轻松地将stderr重定向到stdout:

>>> subprocess.check_output(
... "ls non_existent_file; exit 0",
... stderr=subprocess.STDOUT,
... shell=True)
'ls: non_existent_file: No such file or directory\n'

关于python - 从 Python 脚本重定向 subprocess.run() stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58951345/

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