我正试图使用python代码创建多个作业并将其提交给gaussian当我运行此代码时:
for iframe in mols_xyz.trajectory:
mol_ind = iframe.frame + 1
g16_input = input_dir / f'{mol_base}_{mol_ind}.sh'
with g16_input.open('w') as fn:
fn.write('#!/bin/sh -ln')
fn.write('n')
fn.write('#$ -pe omp 8n')
fn.write('#$ -P porcogrpn')
fn.write('#$ -l h_rt=24:00:00n')
fn.write('#$ -j yn')
fn.write('n')
fn.write('module load gaussian/16.A.03n')
fn.write('n')
fn.write(f'HOMEFOL={str(input_dir)}n')
fn.write(f'INPUTFILE={str(input_dir)}/{mol_base}_{mol_ind}.comn')
fn.write(f'OUTFILE={str(input_dir)}/{mol_base}_{mol_ind}.logn')
fn.write('n')
fn.write('SCRATCHDIR=/scratch/$USER/$JOB_IDn')
fn.write('mkdir -p $SCRATCHDIRn')
fn.write('cd $SCRATCHDIRn')
fn.write('g16 $HOMEFOL/$INPUTFILE > $HOMEFOL/$OUTFILE')
os.system(qsub g16_input)
结果是:
[zpowers@scc1 Test]$ python gaussian_Input.py
File "gaussian_Input.py", line 59
os.system(qsub g16_input)
^
SyntaxError: invalid syntax
真的被困在这里,任何帮助都将不胜感激!
您需要在系统调用周围加引号。命令是一个字符串:
os.system('qsub g16_input')
请参阅文档:https://docs.python.org/3.8/library/os.html#os.system