shell的jobid=$(bjobs -w | grep JID_$myjobid | head -c 8 )翻译成python
时间: 2024-02-13 18:00:59 浏览: 198
Python库 | mypy_boto3_snowball-1.17.101-py3-none-any.whl
在 Python 中,可以使用 `subprocess.run()` 函数来实现与 shell 中的 `bjobs -w | grep JID_$myjobid | head -c 8` 等价的操作,同时使用 `str.strip()` 方法来去除输出中的空白字符:
```python
import subprocess
result = subprocess.run(['bjobs', '-w'], stdout=subprocess.PIPE)
output = result.stdout.decode('utf-8')
jobid = output.split(f'JID_{myjobid}')[1].split('\n')[0].strip()[:8]
```
其中,`subprocess.run()` 函数可以执行外部命令,并返回执行结果。在这里,我们使用列表的形式传递命令及其参数给 `subprocess.run()` 函数,并通过 `stdout=subprocess.PIPE` 参数指定将命令的标准输出返回给 Python 程序。`result.stdout` 属性包含了命令的标准输出结果。`output.split(f'JID_{myjobid}')` 将输出结果按照 `JID_$myjobid` 进行切割,然后取第二个元素,即包含了 `JID_$myjobid` 的行的字符串。接着,我们使用 `.split('\n')[0]` 来提取第一行,并使用 `.strip()[:8]` 来去除行首和行尾的空白字符,并截取前 8 个字符,即作为 `jobid` 的值。需要注意的是,在 Python 中,字符串可以使用 f-string 来包含变量。
阅读全文