2024-04-26 09:38:44 发布
网友
我有一个bash脚本需要转换成python程序。在
我运行一个命令,并在bash数组中捕获它的输出,然后遍历它。在
diskArr=(`lsblk | grep 'disk' | awk -v col1=1 '{print $col1}'`)
这个命令给我一个系统中所有硬盘驱动器的列表,并将其存储在数组“diskArr”中。在
我试过用操作系统以及子流程.Popen也没有成功。在
到目前为止,您并没有真正地将程序转换为python,而是尝试使用python作为shell的包装器。但您也可以在python中执行greping和awking:
import subprocess import re lsblk = subprocess.Popen(['lsblk'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) for line in lsblk.stdout: if 'disk' in line: parts = re.split(r'\s+', line.strip()) name, majmin, rm, size, ro, devtype = parts[:6] if len(parts) > 6: mountpoint = parts[6] else: mountpoint = None print(majmin) returncode = lsblk.wait() if returncode: print("things got bad. real bad.")
这只是一个例子。如果需要引用磁盘的行的列表,可以构建一个包含“disk”的行的列表:
您可以看看官方文档中的replacing the shell pipeline,它有一个很好的例子来说明您正在尝试做什么。在
到目前为止,您并没有真正地将程序转换为python,而是尝试使用python作为shell的包装器。但您也可以在python中执行greping和awking:
这只是一个例子。如果需要引用磁盘的行的列表,可以构建一个包含“disk”的行的列表:
^{pr2}$您可以看看官方文档中的replacing the shell pipeline,它有一个很好的例子来说明您正在尝试做什么。在
相关问题 更多 >
编程相关推荐