Pythonでファイル操作をするときに重要なことがパスの指定方法です。絶対パスと相対パスでは大きな違いあります。また、ファイルが存在するか否かも重要ですね。
今回は、フォルダが存在するかどうかと、絶対パスと相対パスの判定方法、変換方法を紹介します。
この内容を理解するにあたり、ルートディレクトリ、カレントディレクトリ、相対パス、絶対パスのを知っておく必要があります。
今回は「ルートディレクトリ・カレントディレクトリ・ファイルパス」の説明をします。 もし、「ディレクトリ」という言葉が分からない場合は下の記事をご覧ください。 [sitecard subtitle=関連記事 url="https[…]
パソコンを使ったことがあるのなら一度は聞いたことがあるとは追うこれらの言葉「ファイル・フォルダ・ディレクトリ」の違いを説明していきたいと思います。 本棚に本がたくさん入っているようにフォルダ(ディレクトリ)の中にファイルが入っている[…]
ファイルパスとは?
絶対パスとは?
ルートディレクトリから表したパスを絶対パスと言います。なので先頭が「C」や「D」などのドライブ名から始まります。
(例)C:\Desktop\blog\sample2.txt
MacではバックスラッシュでWindwsでは円マーク(¥)でつなげます。
相対パスとは?
カレントディレクトリから表したパスを相対パスと言います。絶対パスと相対パスの書き方は以下の表で対応させています。
相対パスの指定方法はカッコ内のように書いてもOKです。ドット一個ならカレントディレクトリで、2個なら一つ上のディレクトリに戻ると考えておきましょう。
また、コードに書くときはエスケープ文字として「\\(¥¥)」と書くか、raw列を使って書きましょう。
Pythonで文字列を扱うときには細かいルールがたくさんあります。今回はraw列やエスケープ文字の解説をしていきますが、その前にそのルールを確認しておきましょう。 文字列のルール クォートで挟んで表す。シングルクォート(’)で[…]
Pythonでファイルパスを変換
Pythonのosモジュールをつかいます。
os.path.abspath関数(絶対パス)
- 引数に相対パスを渡す
- 引数に渡した相対パスを絶対パスに変換
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
>>> import os #カレントディレクトリ >>> os.path.abspath('.') 'C:\\Programs\\Python\\Python38' #一つ上のディレクトリ >>> os.path.abspath('..\\') 'C:\\Programs\\Python' #さらに上のディレクトリ >>> os.path.abspath('..\\..\\') 'C:\\Programs' #一つ下のディレクトリ >>> os.path.abspath('.\\Scripts') 'C:\\Programs\\Python\\Python38\\Scripts' |
os.path.relpath関数(相対パス)
- 第2引数から第1引数への相対パスを返す
- 第2引数なしならカレントディレクトリからの相対パスを返す
1 2 3 4 5 6 7 8 |
>>> import os #カレントディレクトリ:C:\\Programs\\Python\\Python38' >>> os.path.relpath('C:\\Programs') '..\\..' #後ろから前への相対パス >>> os.path.relpath('C:\\Programs\\Python', "C:\\Documents\\Zoom") '..\\..\\Programs\\Python' |
一つ目は引数を1個しか渡していないので自動的にカレントディレクトリからの相対パスが返されます。二つ目は後ろの引数から前の引数への相対パスが返されます。
ファイルパスを判定
os.path.isabs関数
- 絶対パスのときはTrueを返す
- 相対パスのときはFalseを返す
1 2 3 4 5 6 7 8 9 |
>>> import os >>> os.path.isabs('..\\') False >>> os.path.isabs('.\\Doc') False >>> os.path.isabs('C:\\Programs\\Python\\Python38') True >>> os.path.isabs('C:\\Programs') True |
まとめ
- os.path.abspath関数:
- 相対パスを絶対パスに変換
- os.path.relpath関数
- パス間の相対パスを返す
- os.path.isabs関数
- 絶対パスならTrue・相対パスならFalse
- ファイル操作で使うosモジュールの関数16個まとめ
- ファイルを読み込む手順【open・close・path・withの使い方】
- ファイルに書き込み・上書き・読み込みする5つの方法【open関数のモード選択】
- フォルダ内のファイル名を取得・名前を変更する方法
- ファイル・フォルダを削除・作成する方法
- 絶対パスと相対パスの判定・変換する方法
- ファイル・フォルダを移動・コピーする方法【shutilモジュールの使い方】
- ファイルを読み込む5通りの方法【リスト・for文・一行ずつ】
- ディレクトリツリーを取得してファイル一覧を表示する方法【os.walkの使い方】
- ファイル・フォルダがあるかどうかの存在確認と判定する方法
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]