ファイル・ディレクトリ
現在のプログラムがあるディレクトリは 3 通りの方法で取得できます。 ```python import os a = os.pa...
ディレクトリやファイルのパスはos.path.joinで結合できます。 import os a = 'system' b ...
テキストに文字列を書きこむプログラムを考えます。 ```python file = open('data.txt', 'w') ...
Pythonのファイル入出力に関する解説記事をまとめました。ファイルを読み込む、ファイルを書き込む、csvファイルに書き込む…
リストをcsvファイルに書き込む手順: * csvモジュールを読みこむ * withでファイルを開く * 書きこむ準備をする *...
Pythonでディレクトリのファイル一覧を取得するにはos.listdirを使います。 **プログラム** import os...
ファイルやディレクトリが存在するかどうかを確認するには `os.path.exists()` または `pathlib.Path...
ファイルの削除・移動・コピーには `os` モジュールと `shutil` モジュールを使う。 ファイルを削除する ファイルの削...
ファイルパスから拡張子を取得するには `os.path.splitext()` または `pathlib.Path.suffix...
ディレクトリ内のファイルを再帰的に取得するには `glob` モジュールや `pathlib` の `rglob()` メソッド...
一時的なファイルやディレクトリを作成するには `tempfile` モジュールを使う。プログラム終了時やコンテキスト終了時に自動...
ファイルサイズを取得するには `os.path.getsize()` または `pathlib.Path.stat()` を使う...
ファイルのパーミッション(アクセス権限)を確認・変更するには `os.stat()` と `os.chmod()` を使う。 パ...
相対パスと絶対パスを相互に変換するには `os.path.abspath()` や `pathlib.Path.resolve(...
ユーザーのホームディレクトリを取得するには `os.path.expanduser()` や `pathlib.Path.hom...
ファイル名から拡張子を除いた部分(ベース名)を取得するには `os.path.splitext()` または `pathlib....
Python でファイルパスを扱う方法として、従来の `os.path` モジュールと Python 3.4 で導入された `p...
ディレクトリを作成するには `os.mkdir()` や `os.makedirs()`、あるいは `pathlib.Path....
ファイルの更新日時や作成日時を取得するには `os.stat()` や `os.path.getmtime()` を使う。 更新...
ZIP ファイルの作成や展開には `zipfile` モジュールを使う。 ZIP ファイルを作成する `ZipFile` をライ...
ファイルパス操作には多くの落とし穴がある。ここでは実務でよく見かけるアンチパターンとその改善方法を紹介する。 文字列結合でパスを...
パスを文字列結合で作成するコードをよく見かけるが、これは複数の問題を引き起こす危険なアンチパターンだ。 文字列結合の問題点 一見...
ファイルを開いた後に `close()` を呼び忘れると、リソースリークやデータ損失を引き起こす可能性がある。 close() ...
ファイルの存在を確認してから操作するまでの間に、別のプロセスがファイルを変更・削除する可能性がある。これを TOCTOU(Tim...
相対パスを使ったコードは、カレントディレクトリ(作業ディレクトリ)が変わると壊れる。これはよくあるバグの原因だ。 問題の例 この...
複数のプロセスやスレッドが同じファイルにアクセスする場合、ファイルロックを使ってデータの破損を防ぐ必要がある。 ファイルロックが...
GB 単位の大容量ファイルを `read()` で一度に読み込むと、メモリ不足でプログラムがクラッシュする。イテレータや `mm...
シンボリックリンクとハードリンクは、1 つのファイルに複数の名前を付ける仕組みだ。Python ではどちらも作成・操作できる。 ...
ファイルへの書き込み中にプログラムがクラッシュすると、ファイルが中途半端な状態で残ることがある。アトミック(不可分)な書き込みを...
`watchdog` ライブラリを使うと、ファイルやディレクトリの変更をリアルタイムで監視できる。ログ監視、自動ビルド、同期処理...
ファイルのハッシュ値(チェックサム)を計算すると、ファイルの整合性確認や重複検出ができる。Python の `hashlib` ...
ファイルの読み書きでエンコーディングを正しく扱わないと、文字化けやエラーが発生する。日本語を扱う際は特に注意が必要だ。 エンコー...
複数のプロセスが同じファイルに同時に書き込むと、データが混在したり破損したりする。安全に書き込むにはファイルロックや排他制御が必...
`pathlib` は便利だが、Windows と Unix 系で異なる `Path` クラスが使われるため、クロスプラットフォ...
`__file__` はスクリプトのパスを取得する便利な変数だが、すべての状況で使えるわけではない。使えないケースと代替手段を理...
ファイル I/O はプログラムのボトルネックになりやすい。適切なテクニックを使えば、読み書きの速度を大幅に改善できる。 バッファ...
大きなファイルをネットワーク経由で送信する場合、`sendfile` システムコールを使うとカーネル空間だけでデータを転送でき、...
Python で `open()` を呼んだとき、内部では何が起きているのか。「リソースを確保する」「ファイルを閉じる」とは具体...
Unix 系ファイルシステムでは、ファイル名とファイルの実体は別々に管理されている。この分離を実現するのが inode(アイノー...
Unix ではディレクトリも「ファイル」の一種として扱われる。ただし通常のファイルとは異なり、特殊な構造を持っている。 ディレク...
ファイルを削除したはずなのにディスク容量が減らない。この現象は Unix のファイル削除の仕組みを理解していないと謎に見える。 ...
ファイルに書き込んでいる途中でシステムがクラッシュしたら、データはどうなるのか。ジャーナリングファイルシステムはこの問題に対処す...
Linux の `/proc` と `/dev` は実際のディスク上にデータを持たない「仮想ファイルシステム」だ。Python ...
Python でファイルに `write()` を呼んでも、データがすぐにディスクに書き込まれるわけではない。実際には 3 つの...
`flush()` と `fsync()` は似ているようで全く異なる。この違いを理解していないと、「保存したはずのデータが消え...
Python でファイルを開くとき、`"r"` と `"rb"` で何が違うのか。単に「改行コードの扱い」だけではない、内部動作...
Python スクリプトをターミナルで実行するときと、パイプで繋げたときで出力の挙動が変わることがある。これは標準入出力のバッフ...
Python でファイルを作成するとき、パーミッションが意図どおりにならないことがある。これは umask の仕組みを理解してい...
setuid/setgid ビットは実行ファイルに特別な権限を与える仕組みだ。しかし Python スクリプトでは期待どおりに動...
YAML は設定ファイルや構成管理で広く使われるデータフォーマットだ。JSON と比べてインデントベースで人間が読みやすく、コメ...
TOML(Tom's Obvious, Minimal Language)は、設定ファイル向けに設計されたフォーマットだ。Pyt...
INI ファイルは Windows の設定ファイルとして広まったフォーマットで、セクションとキー・バリューのシンプルな構造を持つ...
ファイルの一括リネームは、写真の整理やログファイルの命名規則統一など、日常的に発生する作業だ。Python では os モジュー...
tar.gz(tarball)は Unix/Linux 環境で最も一般的なアーカイブ形式だ。複数のファイルやディレクトリを 1 ...
ファイルの差分を確認する作業は、設定ファイルの変更確認やコードレビューなど様々な場面で必要になる。Python の標準ライブラリ...




