Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在linux中为具有特定(范围)模式的所有文件执行作业提交脚本_Python_Linux_Bash_Batch File_Slurm - Fatal编程技术网

Python 如何在linux中为具有特定(范围)模式的所有文件执行作业提交脚本

Python 如何在linux中为具有特定(范围)模式的所有文件执行作业提交脚本,python,linux,bash,batch-file,slurm,Python,Linux,Bash,Batch File,Slurm,我正在超级计算服务器上的CentOS 7.7上进行一些计算。假设我有一个包含以下文件的tmp_文件夹: input1.traj, input2.traj, input3.traj, ..., input_5000.traj, random1.traj, random2.traj, ..., random1000.traj 现在我想为74个文件执行一个SLURM作业提交脚本,这些文件的文件名从input_78到input_151。提交单个作业78的脚本如下所示: module load GPAW

我正在超级计算服务器上的CentOS 7.7上进行一些计算。假设我有一个包含以下文件的tmp_文件夹:

input1.traj, input2.traj, input3.traj, ..., input_5000.traj, random1.traj, random2.traj, ..., random1000.traj
现在我想为74个文件执行一个SLURM作业提交脚本,这些文件的文件名从input_78到input_151。提交单个作业78的脚本如下所示:

module load GPAW
gpaw sbatch -- --job-name=job_78 -e error_78.err -o output_78.out -n 16 -N 1 -p xeon16 -t 80:00:00 --mail-type=END,FAIL --mail-user=xxxxx@xxx.xx calc.py tmp_folder//input78.traj
其中GPAW只是一个进行计算的计算工具,calc.py是运行计算的主要Python脚本,inputxx.traj文件是输入轨迹文件


如何为那些特定的74个文件执行此脚本?如果有人不知道SLURM是什么没关系。基本上我想做的就是不断修改作业提交脚本,用79、80等替换78,直到151。值得注意的是,我不想弄乱脚本的其他部分,例如walltime和节点数。如果可能的话,我更愿意使用Python脚本来完成这项任务,但欢迎您提供任何建议。

下面是一些简单的bash,使用78到151的for循环序列

for i in {78..151} 
do
   module load GPAW
   gpaw sbatch -- --job-name=job_$i -e error_$i.err -o output_$i.out -n 16 -N 1 -p xeon16 -t 80:00:00 --mail-type=END,FAIL --mail-user=xxxxx@xxx.xx calc.py tmp_folder//input$i.traj
done