我嘗試在我的 Python 專案中列出連接的 USB 設備。
我嘗試使用os.system()命令提示符,但找不到命令提示符列出連接的 USB 設備(名稱)的命令。
我找到了一個 PowerShell 命令
Get-PnpDevice -PresentOnly | Where-Object { $_. InstanceId -match '^USB' }
這很好用。
我想知道是否有一個命令提示符來列出 USB 連接的設備,os.system()或者如何在 Python 中使用os.system()或任何其他命令運行 PowerShell cmdlet。
uj5u.com熱心網友回復:
有一個名為pyUSB的模塊運行良好。
或者,要運行 Powershell 命令,您可以使用subprocess包。
import subprocess
result = subprocess.run(["powershell", "-Command", MyCommand], capture_output=True)
uj5u.com熱心網友回復:
我對 Python 的看法很差,我想如果你想使用 PowerShell 生成的輸出,你可能想在 Python 中序列化物件并反序列化它們,因此使用ConvertTo-Json.
import subprocess
import json
cmd = '''
Get-PnpDevice -PresentOnly | Where-Object { $_. InstanceId -match '^USB' } |
ConvertTo-Json
'''
result = json.loads(
subprocess.run(["powershell", "-Command", cmd], capture_output=True).stdout
)
for i in result:
print('\n')
for key in i.keys():
if key in ['CimClass', 'CimInstanceProperties', 'CimSystemProperties']:
continue
print(key.ljust(40), ':', i[key])
uj5u.com熱心網友回復:
使用subprocess模塊。在你的情況下,它看起來像:
import subprocess
devices_raw: str = subprocess.run(
["Get-PnpDevice -PresentOnly | Where-Object { $_. InstanceId -match '^USB' }"],
capture_output=True
).stdout
# ... working with devices_raw as a string, probably you'll need to split it or smth.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/479346.html
上一篇:將json值集成到另一個檔案中
