回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我打算使用python并创建一组批处理文件,但是python创建的批处理文件不能上传,而手动输入的代码可以上传。我想知道为什么</p>
<p>我的代码如下</p>
<pre><code>import os
os.chdir("c:/Users/alku/Documents/Work/ToDo/data")
## creating a folder to place submit codes
if not os.path.exists('submit'):
os.makedirs('submit')
depvar = ["01", "02", "03", "04", "05", "06", "07", "08",
"09", "10", "11", "12", "13", "14", "15", "16",
"17", "18", "19", "20", "21", "22", "23", "24"]
##creating corresponding batch codes for supercomputer
###creating a master file
fmaster= open('submit/submit-R-00.csh',"wb+")
fmaster.write(bytes(
'#!/bin/csh' + "\n" +
'#SBATCH --time=00:10:00' + "\n" +
'#SBATCH --mem=6000' + "\n" +
'#SBATCH --cores=1' + "\n"
, encoding='utf8'))
fmaster.close()
for i in depvar:
fmaster= open('submit/submit-R-00.csh',"ab+")
f= open('submit/submit-R-' + str(i) + '.csh',"wb+")
f.write(bytes(
'#!/bin/csh' + "\n" +
'#SBATCH --time=96:00:00' + "\n" +
'#SBATCH --mem=256000' + "\n" +
'#SBATCH --cores=8' + "\n" +
'module load R/3.5.1' + "\n" +
'Rscript alku-COVIDImpact031-quantregForest-part'+ str(i) + '.R'
, encoding='utf8'))
##writing into the master file
fmaster.write(bytes(
'sbatch submit-R-' + str(i) + '.csh' + "\n"
, encoding='utf8'))
</code></pre>
<p>结果是</p>
<pre><code>#!/bin/csh
#SBATCH --time=96:00:00
#SBATCH --mem=256000
#SBATCH --cores=8
module load R/3.5.1
Rscript alku-COVIDImpact031-quantregForest-part01.R
</code></pre>
<p>使用主文件submit-R-00.csh提交它们</p>
<pre><code>#!/bin/csh
#SBATCH --time=00:10:00
#SBATCH --mem=6000
#SBATCH --cores=1
sbatch submit-R-01.csh
sbatch submit-R-02.csh
sbatch submit-R-03.csh
sbatch submit-R-04.csh
sbatch submit-R-05.csh
sbatch submit-R-06.csh
sbatch submit-R-07.csh
sbatch submit-R-08.csh
sbatch submit-R-09.csh
sbatch submit-R-10.csh
sbatch submit-R-11.csh
sbatch submit-R-12.csh
sbatch submit-R-13.csh
sbatch submit-R-14.csh
sbatch submit-R-15.csh
sbatch submit-R-16.csh
sbatch submit-R-17.csh
sbatch submit-R-18.csh
sbatch submit-R-19.csh
sbatch submit-R-20.csh
sbatch submit-R-21.csh
sbatch submit-R-22.csh
sbatch submit-R-23.csh
sbatch submit-R-24.csh
</code></pre>
<p>然而,当我将这些文件上传到我们大学的超级计算机时,超级计算机几乎立即取消了这些作业。此外,系统会创建一个全空的输出,因此我无法确定会发生什么</p>
<p>然后我用记事本输入了完全相同的代码,并将它们上传到超级计算机上。不知怎么的,这次它成功了。这两个版本完全相同,我还使用vim检查线路断路器。虽然问题已经解决了,但我很好奇为什么python创建的相同代码不能提交,而手动键入的代码可以提交</p>