Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

VS CodeとPythonスクリプトファイルとカレントワーキングディレクトリ

【Python入門】VS Code上でカレントワーキングディレクトリを変更・設定する方法とコード

VS Code上でPythonファイルを実行するときに、カレントワーキングディレクトリを変更・設定する方法の解説

PythonのコードをVS Code上で動かすときに、それらのインストールしたときの設定や環境によって、

  • A:動かすコードが書かれたファイルが入っているディレクトリ/フォルダ
  • B:もともと設定されてしまっているカレントディレクトリ/フォルダ(カレントワーキングディレクトリ/フォルダ)

この2つがズレていることがあります。

その状態だといろいろ不便なことが多いので、カレントワーキングディレクトリをAのほうに揃えたいと思うこともあるでしょう。

ですが毎回同じコードを書くのは面倒なので、私は関数としてそれを作成し、使い回すようにしています。今回は私が実際に使っているコードを紹介します。

なお他にも方法はありますが、PythonのブログなのでPythonのコードを使う方法にします。

Pythonのスクリプトのカレントワーキングディレクトリを変更・設定する方法とそのコード

osモジュールについて

Pythonでカレントワーキングディレクトリを確認したり、それを変更したりするには便利なosモジュールを使います。

Python公式ドキュメント:os — 雑多なオペレーティングシステムインターフェース¶

このosモジュールの中には、次の2つの関数が用意されています。

  • getcwd():現在の作業ディレクトリ(カレントワーキングディレクトリ)を表す文字列を返す
  • chdir(path):引数pathに設定されたパスを、現在の作業ディレクトリ(カレントワーキングディレクトリ)として設定する

また、同モジュールにはOSの種類を取得する機能もあり、それが次のos.nameというものです。

  • os.name:’posix’, ‘nt’, ‘java’の文字列を返す。’nt’はWindows、’posix’はMacなどを表します。

これらを使い次のようなコードを書いて使っています。

カレントワーキングディレクトリを変更し設定するコード

5行目と6行目の、

mac_working_directory_path=''
win_working_directory_path=''

の「”」の中に、みなさんがカレントワーキングディレクトリとして設定したパスを入れてください。たとえば、

mac_working_directory_path='/Users/hogehoge/Library/CloudStorage/Dropbox/'
win_working_directory_path='C:/Users/hogehoge/Dropbox/Python_Sample/'

とかです。Windowsの場合は「¥」記号を使わないように注意してください。半角の「/(バックスラッシュ)」に統一しておきましょう。

みなさんの環境に合わせて設定してください。

VS Codeのユーザースニペットに登録して使い回す

あとは上のコードをVS Codeのユーザースニペットに登録しましょう。そうすればPythonのファイルを作るときに、一発で簡単に上のコードが入力できます。

私は以下のコードを、python.jsonファイルの中に記述しています。

"カレントワーキングディレクトの変更・設定":{
	"prefix": "set_current_workingdirectory",
	"body":[
		"#カレントワーキングディレクトリの変更・設定",
		"import os",
        "def set_working_directory():",

            "    # print(os.getcwd())",
            "    mac_working_directory_path='/Users/tmym/Library/CloudStorage/Dropbox/PythonTest'",
            "    win_working_directory_path='C:/Users/yasumitsu/Dropbox/PythonTest/'",
            "    #for mac",
            "    if os.name=='nt':",
            "        os.chdir(win_working_directory_path)",
            "    else:",
            "        os.chdir(mac_working_directory_path)",
            "# print(os.getcwd())",
                
        "set_working_directory()",
    ]

}

}

この中の、

"mac_working_directory_path='パスを設定'",
"win_working_directory_path='パスを設定'",

の部分もみなさんの環境に合わせて設定してください。

このようにユーザースニペットに加えておくと、

VS Codeのユーザースニペット

このように、Pythonファイルを開いて、「se」と入力した時点で次のような候補が出てきて、”prefix”項目で設定した、

"prefix": "set_working_directory",

「set_working_directory」という名前の項目が登場します。あとはそれを選ぶだけで上のコードが自動的に入力されて便利です。もちろんモジュール化してしまうのもアリでしょう。

愛を分かち合いましょう