【发布时间】:2016-01-15 16:20:29
【问题描述】:
我正在运行包含通过 SLURM 打印语句的 Python 代码。通常,当我通过“python program.py”直接运行 Python 代码时,打印语句会出现在终端中。当我通过 SLURM 运行我的程序时,正如预期的那样,打印语句不会出现在终端中。如何将打印语句保存到文件中,以便在程序运行时检查它们?下面是我通过“sbatch submit.sh”提交的提交脚本。请注意,我已经尝试了两种方法将输出写入 test1.out 或 test2.out。请让我知道我哪里出错了!
#!/bin/bash
#SBATCH -J mysubmission
#SBATCH -p New
#SBATCH -n 1
#SBATCH -t 23:59:00
#SBATCH -o test1.out
module load gnu python
python program.py > test2.out
【问题讨论】:
-
您确定您知道这些文件是在哪个目录中创建的吗?尝试一个完全限定的路径名。
-
我看到 test1.out 和 test2.out 都是在我运行 sbatch 的目录中创建的。但是这些文件是空白的。不过我会尝试添加路径名。
-
添加路径名没有解决问题。
-
通过使用
sys.stdout.write而不是 print 来强制输出到标准输出。考虑使用logging模块。 -
sys.stdout.write 有效。谢谢!