真的沒有一種便攜的方式來做到這一點,所以你需要處理平臺特定的代碼。
在OS X上,在命令級別獲取磁盤卷信息的最簡單和最可靠的方法是使用-plist
選項diskutil list
。然後可以使用plistlib
模塊直接在Python中處理輸出。例如:
diskutil list -plist | \
python -c 'import sys,plistlib,pprint; pprint.pprint(plistlib.readPlist(sys.stdin))'
{'AllDisks': ['disk0', 'disk0s1', 'disk0s2', 'disk0s3', 'disk1'],
'AllDisksAndPartitions': [{'Content': 'GUID_partition_scheme',
'DeviceIdentifier': 'disk0',
'Partitions': [{'Content': 'EFI',
'DeviceIdentifier': 'disk0s1',
'Size': 209715200},
{'Content': 'Apple_CoreStorage',
'DeviceIdentifier': 'disk0s2',
'Size': 499248103424},
{'Content': 'Apple_Boot',
'DeviceIdentifier': 'disk0s3',
'Size': 650002432,
'VolumeName': 'Recovery HD'}],
'Size': 500107862016},
{'Content': 'Apple_HFSX',
'DeviceIdentifier': 'disk1',
'MountPoint': '/',
'Size': 499097100288,
'VolumeName': 'main'}],
'VolumesFromDisks': ['main'],
'WholeDisks': ['disk0', 'disk1']}
請記住,相同的設備可以有多個名稱,並且 - 在某些平臺上 - 多個掛載點。 – Zanchey 2012-01-09 08:03:04
@贊吉那很好。我只需要找到給定設備名稱的任何安裝點。 – 2012-01-10 18:09:57