0Pricing
Python Academy · レッスン

パスの操作

パスを結合、解決、検査します

「パスの操作」は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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Pathオブジェクト
  2. ファイルの読み書き
  3. globと反復処理
  4. パスの操作
← Python Academyに戻る