You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Slurm任务中,如何将Python -m调用的单行命令的stdout/stderr导出到同一文件?

解决方法

以下几种单行写法均可实现将命令的标准输出(stdout)和标准错误(stderr)合并导出到同一文件,且不会让重定向符号被识别为Python命令的参数:

  • 方法1:使用合并重定向符号&>(最简洁的bash原生写法)
python3 -m module.function --Arg1 Val1 --Arg2 Val2 --Arg3 Val3 &> Output.txt

&>是bash专属语法,会直接将stdout和stderr的内容一并写入指定文件。

  • 方法2:显式关联stderr到stdout(兼容更多POSIX标准shell)
python3 -m module.function --Arg1 Val1 --Arg2 Val2 --Arg3 Val3 > Output.txt 2>&1

其中2>&1表示将文件描述符2(对应stderr)的输出重定向到文件描述符1(对应stdout)的目标位置,最终两者内容都会写入Output.txt。

  • 方法3:用子shell包裹命令(前两种方法失效时的备选方案)
( python3 -m module.function --Arg1 Val1 --Arg2 Val2 --Arg3 Val3 ) &> Output.txt

括号会创建一个独立的子shell环境,bash会优先解析子shell外部的重定向符号,彻底避免重定向语法被Python命令误判为参数。

内容的提问来源于stack exchange,提问作者Ahmed El-Gabbas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:13:08