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文字列を使用することで正しく開けます。文字列全体を適切にエスケープすることで、エラーなく任意のフォルダを表示可能です。


コメント