[英]python: how to determine default program associated with a given type, under windows
[英]Determine type of disk on Windows with Python
我想列出我所有的磁盤並且能夠知道它的類型:Windows 計算機上的“SATA”“NVME”“M.2”或“PCI”。
我用 wmi 做了一些研究,我得到了接口(SCSI 或 IDE):
c = wmi.WMI()
for disk in c.Win32_DiskDrive():
print(disk.InterfaceType)
但是我不知道磁盤的類型。 也許通過界面我可以獲得我的磁盤類型?
你有什么主意嗎?
謝謝
如果您堅持使用wmi
,請查詢MSFT_PhysicalDisk
class :
import wmi
ws = wmi.WMI(namespace='root/Microsoft/Windows/Storage')
for d in ws.MSFT_PhysicalDisk():
print(d.BusType, d.MediaType, d.Model)
示例輸出
7 3 Elements 1078 11 4 KINGSTON model 11 3 WDC another model
MediaType
枚舉:
Value Meaning
0 Unspecified
3 HDD
4 SSD
5 SCM
最新BusType
枚舉(來自WMI Explorer 2.0.0.2 ):
Value Text Meaning
----- ---- -------
0 Unknown The bus type is unknown.
1 SCSI SCSI
2 ATAPI ATAPI
3 ATA ATA
4 1394 IEEE 1394
5 SSA SSA
6 Fibre Channel Fibre Channel
7 USB USB
8 RAID RAID
9 ISCSI iSCSI
10 SAS Serial Attached SCSI (SAS)
11 SATA Serial ATA (SATA)
12 SD Secure Digital (SD)
13 MMC Multimedia Card (MMC)
14 MAX This value is reserved for system use.
15 File Backed Virtual File-Backed Virtual
16 Storage Spaces Storage Spaces
17 NVMe NVME
18 SCM SCM
19 UFS UFS
20 reserved Microsoft reserved
這應該讓你得到你正在尋找的東西
import subprocess
result = subprocess.run(['powershell.exe', 'Get-PhysicalDisk | ft -AutoSize DeviceId,Model,MediaType,BusType,Size'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
universal_newlines=True)
print(result.stdout)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.