问题:一个命令生成的表格很难用脚本处理。
解决方案:将表格转换为Python字典,以便更高效地使用。这些表格可以有1-20个不同的虚拟驱动器和属性,例如“名称”可能未设置。
示例表格:
将会有四个字典,每一个对应一个虚拟驱动器。如何解决这个问题呢?
我有一些想法。首先,搜索表头并在空格处分隔定义一个列表。其次,在“数字/数字”和空格处查找虚拟驱动器来定义第二个列表。然而,“大小”需要特殊处理,因为它需要忽略数字和“TB”之间的空格。
然后,将两个列表压缩在一起生成一个字典。还有其他更好的方式来处理这段文本吗?
解决方案:将表格转换为Python字典,以便更高效地使用。这些表格可以有1-20个不同的虚拟驱动器和属性,例如“名称”可能未设置。
示例表格:
Virtual Drives = 4
VD LIST :
=======
----------------------------------------------------------
DG/VD TYPE State Access Consist Cache sCC Size Name
----------------------------------------------------------
0/0 RAID1 Optl RW No RWTD - 1.818 TB one
1/1 RAID1 Optl RW No RWTD - 1.818 TB two
2/2 RAID1 Optl RW No RWTD - 1.818 TB three
3/3 RAID1 Optl RW No RWTD - 1.818 TB four
4/4 RAID10 Reblg RW No RWTD - 4.681 TB
----------------------------------------------------------
例子字典:
{"DG/VD":"0/0", "TYPE":"RAID1", "State":"Optl", "Access":"RW", "Consist":"No", "Cache":"RWTD", "sCC":"-", "Size":"1.818 TB", "Name":"one"}
{"DG/VD":"4/4", "TYPE":"RAID10", "State":"Reblg", "Access":"RW", "Consist":"No", "Cache":"RWTD", "sCC":"-", "Size":"4.681 TB", "Name":""}
将会有四个字典,每一个对应一个虚拟驱动器。如何解决这个问题呢?
我有一些想法。首先,搜索表头并在空格处分隔定义一个列表。其次,在“数字/数字”和空格处查找虚拟驱动器来定义第二个列表。然而,“大小”需要特殊处理,因为它需要忽略数字和“TB”之间的空格。
然后,将两个列表压缩在一起生成一个字典。还有其他更好的方式来处理这段文本吗?
# Create a list of all the headers in the virtual disk table
get_table_header = " /c0/vall show | awk '/^DG\/VD/'"
table_header_values = console_info(utility + get_table_header).split()
['DG/VD', 'TYPE', 'State', 'Access', 'Consist', 'Cache', 'sCC', 'Size', 'Name']
# Create a list of all virtual drives
get_virtual_drives = " /c0/vall show | awk '/^[0-9]\/[0-9]/'"
virtual_drive_values = console_info(utility + get_virtual_drives).split()
["0/0", "RAID1", "Optl", "RW", "No", "RWTD", "-", "1.818", "TB", "0"]
Size
总是存在吗? - undefined