Python subprocessでフォルダを開く際のパス指定ルールと注意点

プログラミング

Pythonのsubprocessモジュールを使って指定したフォルダをエクスプローラーで開く場合、フォルダ名やパスの指定方法に注意が必要です。特にスペースや特殊文字が含まれる場合、正しく動作させるためのポイントを解説します。

subprocess.Popen()でフォルダを開く基本

Windowsでエクスプローラーを開く場合、subprocess.Popen()に”explorer”コマンドとフォルダパスを指定します。基本構文は以下の通りです。

import subprocesssubprocess.Popen(["explorer", "C:\\Users\\User\\Documents"])

このとき、フォルダパスは文字列として正しく認識される必要があります。

パスにスペースや記号が含まれる場合の注意

フォルダ名にスペースや記号が含まれる場合、文字列全体をクォートで囲む、もしくはリスト形式で渡すことで正しく解釈されます。例えば:

subprocess.Popen(["explorer", "C:\\Users\\User\\My Folder"])

この形式であれば、スペースを含むパスも問題なく開けます。文字列を1つの文字列で渡すと、スペースで分割されてしまうため注意が必要です。

特殊文字の扱い

パスに日本語や記号、特殊文字が含まれる場合は、Pythonで文字列をUTF-8として扱うか、raw文字列(r”パス”)を使うことを推奨します。これにより、エスケープの誤解釈を避けられます。

subprocess.Popen(["explorer", r"C:\Users\User\新しいフォルダ"])

まとめ

subprocess.Popen()でエクスプローラーを開く際は、フォルダパスにスペースや記号が含まれていても、リスト形式で渡すかraw文字列を使用することで正しく開けます。文字列全体を適切にエスケープすることで、エラーなく任意のフォルダを表示可能です。

コメント

タイトルとURLをコピーしました