パスの操作
パスを結合、解決、検査します
「パスの操作」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。
パスの確認と変換
pathlibでは、パスを構築するだけでなく、絶対パスへの解決、パス同士の関係の確認、ファイルシステムのメタデータの読み取りも、os.pathに触れずに行えます。
絶対パスと相対パス
is_absolute()は、パスがルートを起点としているかどうかを返します。相対パスは現在のディレクトリを基準に解釈されます。
from pathlib import Path
print(Path('docs/file.txt').is_absolute())
print(Path('/usr/local').is_absolute())パスの解決
resolve()はパスを絶対パスに変換し、.や..の構成要素を整理します。パスを正規化するための代表的な方法です。
from pathlib import Path
p = Path('a/b/../c/file.txt')
print(p.resolve())joinpathによる連結
/演算子に加えて、joinpath()では1つ以上の構成要素を追加できます。構成要素がリストから取得される場合に便利です。
from pathlib import Path
base = Path('project')
parts = ['src', 'main', 'app.py']
print(base.joinpath(*parts))2つのパス間の相対パス
relative_to()は、ある場所を別の場所から見た相対パスを計算します。指定した基準パスの配下にない場合は例外を発生させます。
from pathlib import Path
full = Path('/home/user/docs/report.txt')
rel = full.relative_to('/home/user')
print(rel)is_relative_toによるプレフィックスの確認
is_relative_to()は、あるパスが別のパスの配下にあるかどうかを安全に確認し、例外ではなくブール値を返します。
from pathlib import Path
p = Path('/home/user/docs/file.txt')
print(p.is_relative_to('/home/user'))
print(p.is_relative_to('/etc'))複数の拡張子
archive.tar.gzのような名前では、suffixesがすべての拡張子を一覧表示し、suffixは最後の拡張子だけを返します。
from pathlib import Path
p = Path('archive.tar.gz')
print(p.suffix)
print(p.suffixes)アンカーとドライブ
anchorプロパティは、パスのルート部分です。POSIXでは通常/であり、Windowsではドライブ文字を含みます。
from pathlib import Path
p = Path('/usr/local/bin')
print('anchor:', p.anchor)
print('parts:', p.parts)ファイルメタデータの読み取り
stat()は、バイト単位のサイズなど、ファイルシステムのメタデータを返します。ここではファイルを作成し、そのサイズを読み取ります。
from pathlib import Path
p = Path('meta.txt')
p.write_text('hello world')
print('size:', p.stat().st_size, 'bytes')名前変更と移動
rename()は、パスの場所または名前を変更します。パスを構築するメソッドと組み合わせると、ファイルの整理を簡潔に行えます。
from pathlib import Path
old = Path('old_name.txt')
old.write_text('data')
new = old.with_name('new_name.txt')
old.rename(new)
print(new.exists(), new.read_text())ホームディレクトリのショートカットを展開する
expanduser()は、先頭にある~をユーザーのホームディレクトリに置き換えます。シェルによる展開と同じ動作です。
from pathlib import Path
p = Path('~/configs/app.ini')
expanded = p.expanduser()
print(expanded.is_absolute())クイックチェック
resolve()メソッドはパスに対して何を行いますか?
まとめ
パスを連結、解決、確認する方法を学びました。
resolveは絶対パスに変換し、正規化します。relative_toとis_relative_toは場所同士を比較します。suffix、suffixes、anchor、partsで構造を確認できます。statでメタデータを読み取り、renameでファイルを移動します。
よくある質問
「パスの操作」レッスンは無料ですか?
はい。「パスの操作」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。
「パスの操作」で何を学びますか?
パスを結合、解決、検査します ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「パスの操作」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。