0Pricing
Python Academy · レッスン

pathlib によるファイルパス操作

最新の pathlib モジュールでファイルパスをたどり、操作します。

「pathlib によるファイルパス操作」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。

はじめに

pathlib はファイルシステムのパスをオブジェクト指向で扱うためのインターフェースを提供し、壊れやすい os.path の文字列操作を置き換えます。

Path の作成

from pathlib import Path; p = Path('data/file.txt') は、パスオブジェクトを作成します。すべてのプラットフォームで動作します。
from pathlib import Path
p = Path('data/file.txt')
print(p)

/ による Path の結合

p = Path('data') / 'subdir' / 'file.txt' は、/ 演算子を使ってパスの各要素を結合します。すっきり記述でき、クロスプラットフォームで動作します。
from pathlib import Path
p = Path('data') / 'sub' / 'file.txt'
print(p)

Path のプロパティ

p.name はファイル名を返します。p.stem は拡張子を除いた名前を返します。p.suffix は拡張子を返します。p.parent はディレクトリを返します。
from pathlib import Path
p = Path('data/report.csv')
print(p.name, p.stem, p.suffix, p.parent)

存在の確認

p.exists() は、パスが存在する場合に True になります。ファイルには p.is_file()、ディレクトリには p.is_dir() を使います。
from pathlib import Path
p = Path('/tmp')
print(p.exists(), p.is_dir(), p.is_file())

読み込みと書き込み

p.read_text(encoding='utf-8') はファイルを文字列として読み込みます。p.write_text('content') は文字列を書き込みます。
from pathlib import Path
p = Path('/tmp/test_pathlib.txt')
p.write_text('hello pathlib')
print(p.read_text())

ディレクトリ内容の反復処理

for child in p.iterdir(): は、すべての項目に対する Path オブジェクトを生成します。p.glob('*.py') はパターンに一致する項目を検索します。
from pathlib import Path
for child in Path('/tmp').iterdir():
    if child.suffix == '.txt':
        print(child.name)
        break

再帰的な Glob

p.rglob('*.json') は、p 以下にあるすべての .json ファイルを再帰的に検索します。os.walk() よりもはるかにすっきり記述できます。
from pathlib import Path
for f in Path('/tmp').rglob('*.txt'):
    print(f.name)
    break

ディレクトリの作成

p.mkdir(parents=True, exist_ok=True) は、ディレクトリと必要なすべての親ディレクトリを作成します。exist_ok=True によって FileExistsError を防げます。
from pathlib import Path
Path('/tmp/test_dir/sub').mkdir(parents=True, exist_ok=True)
print('created')

名前の変更と削除

p.rename(new) はファイルの名前を変更します。p.unlink() はファイルを削除します。p.rmdir() は空のディレクトリを削除します。
from pathlib import Path
p = Path('/tmp/test_pathlib.txt')
if p.exists():
    p.unlink()
    print('deleted')

絶対パスと相対パス

p.resolve() は、シンボリックリンクを解決した絶対パスを返します。p.relative_to(base) は相対パスを計算します。
from pathlib import Path
print(Path('.').resolve())

クイックチェック

pathlib で Path の要素を結合する演算子はどれですか?

まとめ

pathlib の Path では、/ で要素を結合します。構成要素の取得には .name/.stem/.suffix/.parent を使います。I/O には read_text/write_text を使います。ファイルシステム操作には mkdir、unlink、glob を使います。

次へ進みましょう

よくできました。次のレッスンに進んで、学習を続けましょう。

よくある質問

「pathlib によるファイルパス操作」レッスンは無料ですか?

はい。「pathlib によるファイルパス操作」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。

「pathlib によるファイルパス操作」で何を学びますか?

最新の pathlib モジュールでファイルパスをたどり、操作します。 ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Python Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「pathlib によるファイルパス操作」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPython Academyレッスンでコードを書いて実行できますか?

はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

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

  1. ファイルの開き方と読み取り方
  2. ファイルへの書き込みと追記
  3. ファイル操作で with 文を使う
  4. pathlib によるファイルパス操作
← Python Academyに戻る