Python を使用したパスにスペースが含まれるプログラム実行の処理
Python では、外部プログラムの実行に os.system がよく使用されます。ただし、プログラムへのパスにスペースが存在すると失敗する可能性があります。
次のコード スニペットを考えてみましょう:
<code class="python">import os os.system("C:\Temp\a b c\Notepad.exe");</code>
このコードは、スペースを含むパスでメモ帳を実行しようとします。ただし、次のエラーで失敗します:
'C:\Temp\a' is not recognized as an internal or external command, operable program or batch file.
この問題を解決するには、引用符でプログラムをエスケープします:
<code class="python">os.system('"C:\Temp\a b c\Notepad.exe"');</code>
ただし、このアプローチは、プログラムにパラメータを渡すときに失敗します。次の例に見られます:
<code class="python">os.system('"C:\Temp\a b c\Notepad.exe" "C:\test.txt"');</code>
これに対処するには、subprocess.call を利用します:
<code class="python">import subprocess subprocess.call(['C:\Temp\a b c\Notepad.exe', 'C:\test.txt'])</code>
subprocess.call は引数のリストを受け入れ、複雑な引用符の必要性を排除します。これにより、パスにスペースが含まれるプログラムを実行する問題が効果的に解決されます。
以上がPython を使用してパスにスペースが含まれるプログラムを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。