Python 如何正确指向PBS脚本中的数组/作业文件?

Python 如何正确指向PBS脚本中的数组/作业文件?,python,unix,pbs,Python,Unix,Pbs,在此之前,我为这样一个可能已经得到回答的基本问题表示诚挚的歉意。我非常感谢您的帮助或为我指明了现有答案的方向 我试图通过在PSB脚本中设置数组作业,在1000个数据文件上运行1000个python脚本。每个脚本显式调用特定的数据文件;这是硬接线的。在这里,解释为什么python脚本和数据文件需要单独维护是很有挑战性的,也没有必要 我有python文件名1.py,2.py。。。1000.py。这些文件没有存储在我的主目录中,我想这就是问题所在 我在PBS脚本上尝试了许多变体,但都没有成功,但我想我

在此之前,我为这样一个可能已经得到回答的基本问题表示诚挚的歉意。我非常感谢您的帮助或为我指明了现有答案的方向

我试图通过在PSB脚本中设置数组作业,在1000个数据文件上运行1000个python脚本。每个脚本显式调用特定的数据文件;这是硬接线的。在这里,解释为什么python脚本和数据文件需要单独维护是很有挑战性的,也没有必要

我有python文件名1.py,2.py。。。1000.py。这些文件没有存储在我的主目录中,我想这就是问题所在

我在PBS脚本上尝试了许多变体,但都没有成功,但我想我比今天早上更接近了

无论如何,我现在的情况如下:

#! /bin/bash
#PBS -j oe
#PBS -o TEST-ARRAY.txt    
#PBS -N TEST-ARRAY    
#PBS -l nodes=1:ppn=1
#PSB -t 1-1000%100
#PBS -q long  

file='SOME/DIRECTORY/'${PBS_ARRAYID}'.py'
python $file
不幸的是,我得到了错误

python: can't open file 'SOME/DIRECTORY/.py': [Errno 2] No such file or directory
因此,我对file变量的设置似乎有缺陷,无法为文件名字符串插入作业数组号。然而,我尝试过使用单引号和不使用单引号,以及其他一些逻辑上的东西,但都没有成功


提前非常感谢您的帮助

看来我不能通过

 ${PBS_ARRAYID}'.py'
到python。我应该注意到其他阵列模型是

 somescript ${PBS_ARRAYID}.file
脚本在所有作业中相同,数据文件不同。这不是我的情况

我通过制作许多调度程序文件,以新手的方式解决了这个问题。是的,1000份工作中每一份。。。。然后对所有这些对象运行qsub命令来创建数组。我的PBS脚本的最后一行是这样的:

 qsub ${PBS_ARRAYID}.sh

我知道我可以循环调度程序脚本,而不必实际生成1000个脚本,但我可以让它正常工作,稍后再试

您是否尝试将“SOME/DIRECTORY/”更改为文件所在的实际目录?“SOME/DIRECTORY”只是一个占位符,需要更改为实际路径。当然可以。我在这里只使用了“SOME/DIRECTORY/”,因为实际名称很长,而且视觉上很恐怖。实际上,我收回了这句话。问题似乎是服务器上的“${PBS_ARRAYID}”。哦,好吧。所以,忽略我的回答。