93154


以下のように、PowerShellコマンドをPythonから呼び出してみたのですが、戻り値は画面上に表示されるだけでPythonで受け取ることが出来ませんでした。

[code]

    import os
    os.system("powershell -Command Get-ItemProperty HKLM:SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\* ^| Select-Object DisplayName ^| Format-Table –AutoSize")
    
[/code]

PowerShellの出力結果をテキストファイルに出力した後にPythonで受け取るような形でも良いのですが、どうすればPythonにデータを受け渡し出来そうでしょうか？


CC BY-SA 4.0
2023-01-02T09:27:03.600
93146
2023-01-02T23:11:23.847
34471
question
python windows powershell
PythonからPowerShellのコマンドを呼び出して出力結果をPythonに受け渡す方法


コメントに紹介した他に以下の記事がシンプルに記述されています。  
[PythonのsubprocessでWindowsコマンドを実行](https://helve-
blog.com/posts/python/subprocess-command/)  
[Pythonからコマンドを呼び出す（Windows編）](https://qiita.com/_akisato/items/d97b17064df158f0dea0)

それを適用すると以下のようにすれば出来るでしょう。

[code]

    import subprocess
    res = subprocess.run("powershell -Command Get-ItemProperty HKLM:SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\* ^| Select-Object DisplayName ^| Format-Table –AutoSize", 
        stdout=subprocess.PIPE, shell=True, encoding="cp932")
    print(res.stdout)
    
[/code]


CC BY-SA 4.0
2023-01-02T23:11:23.847
93154
2023-01-02T23:11:23.847
26370
93146
answer