Pythonのsubprocess
モジュールは、新しいプロセスを作成し、そのプロセスでコマンドを実行するためのモジュールです。しかし、subprocess.call()
やsubprocess.run()
でcd
コマンドを使用すると、新しく作成されたプロセス内でディレクトリが変更されますが、そのプロセスが終了すると元のディレクトリに戻ってしまいます。
これは、新しく作成されたプロセスが終了するとその状態が破棄されるためです。したがって、Pythonスクリプト内でディレクトリを変更するには、os.chdir()
を使用することが推奨されています。
以下に、subprocess
モジュールとos.chdir()
を使用してディレクトリを変更する例を示します。
import os
import subprocess
# ディレクトリを変更
os.chdir("desired_directory")
# コマンドを実行
subprocess.run(["ls", "-l"])
このコードでは、まずos.chdir()
を使用してディレクトリを変更し、その後でsubprocess.run()
を使用してls -l
コマンドを実行しています。この結果、新しいディレクトリでコマンドが実行されます。
以上が、Pythonのsubprocess
モジュールを使用したディレクトリ操作についての説明です。この情報がPythonでのディレクトリ操作に役立つことを願っています。