将shell中的 t1=$(bhosts -o "HOST_NAME") hosts=($t1) t2=$(bhosts -o "status") host_status=($t2) t3=$(bhosts -o "MAX") host_max=($t3) t4=$(bhosts -o "NJOBS") host_njobs=($t4)改写成python代码
时间: 2024-01-15 19:02:43 浏览: 96
可以使用`subprocess`模块来执行shell命令并获取输出结果,然后使用Python的字符串和列表操作来解析结果。下面是一个示例代码:
```python
import subprocess
# 执行命令并获取输出结果
t1 = subprocess.check_output(["bhosts", "-o", "HOST_NAME"])
t2 = subprocess.check_output(["bhosts", "-o", "status"])
t3 = subprocess.check_output(["bhosts", "-o", "MAX"])
t4 = subprocess.check_output(["bhosts", "-o", "NJOBS"])
# 将输出结果解析为列表
hosts = t1.decode().strip().split('\n')
host_status = t2.decode().strip().split('\n')
host_max = t3.decode().strip().split('\n')
host_njobs = t4.decode().strip().split('\n')
# 输出结果
print(hosts)
print(host_status)
print(host_max)
print(host_njobs)
```
需要注意的是,`subprocess.check_output`会返回一个bytes类型的结果,需要使用`decode()`方法将其转换为字符串类型,并使用`strip()`方法来去除多余的空格和换行符。另外,由于`bhosts`命令的输出结果是以换行符分隔的多行文本,我们需要使用`split('\n')`方法将其分割成多个元素构成的列表。
阅读全文