毎日ちょっとPython ~ 22日目 ~

もう22日目ですか。結構時間がかかりますね。ただ、楽しくなってきました。

カレントディレクトリ

現在作業中のディレクトリのことをk連とディレクトリですね。cwd(current working directory)でよびだすやつ。

getcwd() - 現在のカレントディレクトリを取得
chdir() - ディレクトリを変える(change directoryかな?)

>>> import os
>>> os.getcwd()
'C:\\Users\\ユーザー名'
>>> os.chdir('C:\\Windows\\System32')
>>> os.getcwd()
'C:\\Windows\\System32'

存在しないディレクトリに変更しようとするとPythonはエラーを表示します。

>>> os.chdir('C:\\ThisFolderDoesNotExist')
Traceback (most recent call last):
 File "<pyshell#6>", line 1, in <module>
   os.chdir('C:\\ThisFolderDoesNotExist')
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。: 'C:\\ThisFolderDoesNotExist'

絶対パスと相対パス

絶対パス - ルートフォルダから始まるもの。
相対パス - カレントディレクトリから相対的に指定するもの。

です。./みたいなのが相対パスです。上記でC:\\ から始めるようなものが絶対パス。

os.makedirs()関数を用いて、新しいフォルダ(ディレクトリ)を作る

>>> os.makedirs('C:\\delicious\\walnut\\waffles')

こんな感じで書くと、一気に全部作ってくれます!便利!

os.pathモジュール

os.pathモジュールには、ファイル名やパスを操作するための便利な関数がたくさんあるので、公式ドキュメントみてみよう!

絶対パスと相対パスを操作する

os.path.abspath(path) - 引数に渡したパスの絶対パスを文字列として返す。これを呼び出せば相対パスを絶対パスに変換することができる。

os.path.isabs(path) - 引数が絶対パスならTrue、相対パスならFalseを返す。

os.path.relpath(path,start) - start から pathへの相対パスを文字列として返す。startを指定しなければ、カレントディレクトリからの相対パスを返す。

>>> os.path.abspath('.')
'C:\\Windows\\System32'
>>> os.path.abspath('.\\Scripts')
'C:\\Windows\\System32\\Scripts'
>>> os.path.isabs('.')
False
>>> os.path.isabs(os.path.abspath('.'))
True

カレントディレクトリが「C:\\Windows\\System32」なので、os.path.abspath()を呼び出すと、フォルダが「C:\\Windows\\System32」に書き換わります。

os.path.relpath()を呼び出すと以下のような感じ。

>>> os.path.relpath('C:\\Windows','C:\\')
'Windows'
>>> os.path.relpath('C:\\Windows','C:\\spam\\eggs')
'..\\..\\Windows'
>>> os.getcwd()
'C:\\Windows\\System32'

ちょっとこれどうやって、扱うのかわからないですね。その位置までのpathを返すっていう感じかな?

という感じでお時間です。

この記事が気に入ったらサポートをしてみませんか?