

次の①、②のようなコードを使ってsubprocess.Popenを使用するとエラーが出ます。ディレクトリ名に「Test
App」と空白文字列が入っていることが原因かと思われますが、ディレクトリ名を変更する以外の方法だと、どうすれば正しく実行できそうですか？

①パスをそのまま使用した場合(test1.py)

[code]

    import os
    import subprocess
    appData_installerPath = ""
    appDataPath = os.path.join(os.getenv('APPDATA'),'Test App')
    appData_installerPath = os.path.join(appDataPath,'test.exe')
    subprocess.Popen(appData_installerPath,shell=True)
    
[/code]

test1.pyを実行した場合のエラーメッセージ

[code]

    'C:\Users\taichi\AppData\Roaming\Test' is not recognized as an internal or external command,
    operable program or batch file.
    
[/code]

②repr()でraw文字列に変換して試した場合(test2.py)

[code]

    import os
    import subprocess
    appData_installerPath = ""
    appDataPath = os.path.join(os.getenv('APPDATA'),'Test App')
    appData_installerPath = os.path.join(appDataPath,'test.exe')
    subprocess.Popen(repr(appData_installerPath),shell=True)
    
[/code]

test2.pyを実行すると以下のようなエラーが出ます。

[code]

    The filename, directory name, or volume label syntax is incorrect.
    
[/code]


CC BY-SA 4.0
2023-07-14T09:02:05.913
95613
2023-07-14T09:02:05.913
34471
question
python
空白文字を含むパスをsubprocess.Popenで開く際のエラー