python - 通过循环提交多个作业时权限被拒绝
问题描述
我正在尝试使用 python 代码创建多个作业并将其提交到高斯。当我运行此代码时:
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 -l\n')
fn.write('\n')
fn.write('#$ -pe omp 8\n')
fn.write('#$ -P porcogrp\n')
fn.write('#$ -l h_rt=24:00:00\n')
fn.write('#$ -j y\n')
fn.write('\n')
fn.write('module load gaussian/16.A.03\n')
fn.write('\n')
fn.write(f'HOMEFOL={str(input_dir)}\n')
fn.write(f'INPUTFILE={str(input_dir)}/{mol_base}_{mol_ind}.com\n')
fn.write(f'OUTFILE={str(input_dir)}/{mol_base}_{mol_ind}.log\n')
fn.write('\n')
fn.write('SCRATCHDIR=/scratch/$USER/$JOB_ID\n')
fn.write('mkdir -p $SCRATCHDIR\n')
fn.write('cd $SCRATCHDIR\n')
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
推荐阅读
- python - 如何使用包含 1970 年之前的日期的非标准格式将 Pandas 系列字符串转换为 Pandas 日期时间
- javascript - 为什么我不能正确更新 React 中的嵌套状态?
- binary - 2 位有符号乘法器
- python - UMAP PicklingError:(“不能腌制
: ...) - flutter - Flutter Provider:Firebase Auth StateChanges 被监听,但状态没有改变
- c++ - 使用指针从 VTable 手动调用函数会导致分段错误
- php - 条纹支付网关自动化
- android - 我使用代理时的android volley双重请求
- python - Python嵌套列表:如何打印特定元素并附加到每个子列表
- reactjs - “gatsby-source-contentful”的插件选项无效