説明
カレントディレクトリの操作
動作確認環境:Python3.6 / macOS 10.13.5
私はどこ?には「os.getcwd()」を使う
現在のカレントディレクトリは
os.getcwd() 関数を使うと文字列で取得出来る。
こんな感じ。
cpath = os.getcwd()
さらに、カレントディレクトリは
os.chdir() 関数を使って変更することも出来る。
こんな感じ。
os.chdir(A)
もちろん、引数のAには、
カレントディレクトリにしたいパスの文字列を渡す。
chdir(A)した後、getcwd()すると
Aが返ってくる。
ex.1 カレントディレクトリの取得
現在のカレントディレクトリを取得してみよう。
ここで、現在のカレントディレクトリを
「/Users/taka/Desktop」とすると
import os cpath = os.getcwd() print('ex.1 :' + cpath)
(実行結果)
ex.1 :/Users/taka/Desktop
ex.2 カレントディレクトリの変更
今度は、カレントディレクトリを変更してみよう。
変更したいパスを「/Users/taka/work」とすると
import os os.chdir('/Users/taka/work') print('ex.2 :' + os.getcwd())
(実行結果)
ex.2 :/Users/taka/work
ちなみに、4行めのprint文の中には
ex.1で説明したgetcwd()を使い
変更されたカレントディレクトリを表示してみた
ところで、存在しないディレクトリを指定したらどうなるだろう。
例えば、ex.2で指定したパス文字列の中の’work’を
うっかり’walk’とか書いちゃったときだ。
import os os.chdir('/Users/taka/wark') print('ex.3 :' + os.getcwd())
(実行結果)
FileNotFoundError: [Errno 2] No such file or directory: ‘/Users/taka/wark’
そんな時は「FileNotFoundError」が発生する。
そして例外処理を書かない限り
そこでプログラムは停止、4行めは実行されない。
あ、何かの間違いで既に「/Users/taka/wark」が存在するときは
エラーにならないので注意。
(過去に同様のスペルミスをしちゃって生成されているかもしれない。)
フルパスを指定したプログラミングなら
カレントディレクトリの操作は不要かもしれないが
パスを渡り歩くようなプログラミングでは
カレントディレクトリの操作もしたくなる。
Pythonは、主だったOSコマンドは関数化されているので
シェルのようなプログラミングも
ストレスなく書くことが出来る。
Pythonバンザイ