Python樹林– category –
-
Python樹林
Pythonでファイルとディレクトリを削除する方法:os.removeとshutil.rmtreeの使い分け
ファイル操作を行うプログラムでは、不要になった一時ファイルや、古いデータを格納したディレクトリを削除する処理が必要になります。 Pythonでは、削除対象が「ファイル」なのか「ディレクトリ(フォルダ)」なのかによって、使用する関数が異なります。... -
Python樹林
Pythonでファイルやディレクトリをコピーする:shutil.copyとshutil.copytreeの完全ガイド
データのバックアップを作成したり、テンプレートフォルダを複製して新しいプロジェクトを開始したりする際、ファイルやディレクトリのコピー操作は欠かせません。 Pythonの標準ライブラリである shutil モジュール(Shell Utilitiesの略)を使用すると、... -
Python樹林
Pythonでファイルやディレクトリを移動・リネームする:shutil.moveの使い方
ファイルの整理やログのローテーション、バックアップ処理などにおいて、ファイルやディレクトリを別の場所に移動させたい場面は頻繁に発生します。 Pythonでこれを行うには、標準ライブラリ shutil モジュールの move() 関数を使用するのが最も一般的で確... -
Python樹林
Pythonでファイルの拡張子を取得・判定する:os.path.splitextの挙動と使い方
ファイル操作を行うプログラムでは、「画像ファイル(.jpg, .png)だけを処理したい」「テキストファイル(.txt)以外は除外したい」といったように、ファイルの拡張子に基づいて処理を分岐させたい場面が多々あります。 Pythonの標準ライブラリ os.path ... -
Python樹林
Pythonでファイルかディレクトリかを判定する方法:os.path.isfileとos.path.isdirの使い方
ファイル操作を行うプログラムでは、指定されたパスが「ファイル」なのか、それとも「ディレクトリ(フォルダ)」なのかを区別して処理を分けたい場面が多々あります。例えば、ディレクトリの中にあるアイテム一覧を取得した後、ファイルに対してのみ読み... -
Python樹林
Pythonでディレクトリ内のファイル一覧を取得する方法:pathlib.iterdir()とos.listdir()の使い分け
ファイル操作を行うスクリプトでは、「指定したフォルダの中にある全てのファイルを処理したい」という場面が頻繁に発生します。 Pythonでディレクトリ直下のコンテンツ一覧を取得するには、主に2つの方法があります。 pathlib モジュール(推奨): Python... -
Python樹林
Pythonでファイルやディレクトリの存在を確認する:os.path.exists, isfile, isdirの使い分け
ファイル操作を行う前に、「そのファイルが本当にそこにあるか」を確認することは、エラー(FileNotFoundError)を防ぐために非常に重要です。 Pythonの標準ライブラリ os.path モジュールには、存在確認を行うための関数がいくつか用意されています。単に... -
Python樹林
Pythonで絶対パスと相対パスを取得・変換する:os.path.abspathとrelpathの使い方
ファイル操作を行うプログラムでは、ファイルの位置を特定するために「パス(Path)」を使用します。パスには、ルートディレクトリから記述する「絶対パス」と、現在の位置(カレントディレクトリ)などを基準に記述する「相対パス」の2種類があります。 P... -
Python樹林
Pythonでカレントディレクトリを取得・変更する方法:os.getcwdとos.chdirの使い方
Pythonスクリプトの中でファイルを読み書きする際、ファイルパスを相対パス(data.txt など)で指定すると、それは「カレントディレクトリ(現在の作業ディレクトリ)」を基準に探されます。 そのため、プログラムが現在どこのディレクトリで実行されてい... -
Python樹林
Pythonでパスの末尾(ファイル名)とディレクトリを分離する:os.path.splitの使い方
ファイルパスを扱うプログラムでは、「フルパスからファイル名だけを取り出したい」あるいは「ファイル名を除いた親ディレクトリのパスを取得したい」という操作が頻繁に発生します。 Pythonの標準ライブラリ os.path モジュールにある split() 関数を使用... -
Python樹林
Pythonでパスを結合する:os.path.joinの使い方と絶対パスによるリセットの仕様
ファイルやディレクトリのパスをプログラム内で扱う際、ディレクトリ名とファイル名を連結して一つのパス文字列を作成する操作は頻繁に行われます。 単純に文字列の足し算(+)や join メソッドで / を挟むことも可能ですが、OSによってパスの区切り文字が... -
Python樹林
Pythonでパス区切り文字を取得する:os.sepの使い方とクロスプラットフォーム対応
PythonスクリプトをWindowsとmacOS(またはLinux)の両方で動作させようとした際、問題になりやすいのが「ファイルパスの区切り文字(パスセパレータ)」の違いです。 Windows: バックスラッシュ \(Python文字列内では \\) macOS / Linux: スラッシュ / ... -
Python樹林
Pythonでテキストファイルに書き込む:write()とwritelines()の違いと改行の扱い
Pythonで計算結果やログデータをファイルに保存する際、組み込み関数の open() でファイルを「書き込みモード」で開き、メソッドを使ってデータを書き込みます。 書き込みメソッドには、単一の文字列を書き込む write() と、リストなどのシーケンスをまと... -
Python樹林
Pythonでテキストファイルを読み込む:read, readline, readlinesの違いと使い分け
Pythonでテキストファイルの中身を読み込む際、組み込み関数の open() を使用しますが、その後の「データの取り出し方」には主に3つのメソッドが存在します。 read(): 全体を1つの文字列として読み込む readlines(): 全体をリスト(行ごとの配列)として読... -
Python樹林
Pythonのファイル操作入門:open()関数のモード一覧とwith文による安全な読み書き
Pythonでテキストファイルやバイナリファイルを扱う場合、組み込み関数の open() を使用します。この関数は、ファイルを読み込むのか、書き込むのか、あるいは追記するのかといった「モード」を指定してファイルオブジェクトを作成します。 また、ファイル... -
Python樹林
Pythonのメモリ使用量を計測する:tracemallocモジュールの使い方とボトルネックの特定
Pythonはメモリ管理を自動で行う(ガベージコレクションを持つ)言語ですが、大規模なデータを扱う処理や長時間稼働するサーバーアプリケーションでは、メモリ使用量の肥大化が問題になることがあります。 このような場合、標準ライブラリの tracemalloc ... -
Python樹林
Pythonの実行時間計測:time.perf_counter()とtime.process_time()の違いと使い分け
プログラムのパフォーマンスを評価する際、「処理にどれくらいの時間がかかったか」を正確に計測することは重要です。Pythonの標準ライブラリである time モジュールには、時間を計測するための関数がいくつか用意されていますが、目的に応じて適切なもの... -
Python樹林
Pythonの型ヒント応用:複数の型を許容するUnion(|)と任意の型を受け入れるAny
Pythonのタイプヒントを使用していると、「この変数は整数が入ることもあれば、文字列が入ることもある」といったケースや、「どんな型のデータが来るか特定できない」といったケースに遭遇します。 このような柔軟な型定義を行うために、Pythonには Union... -
Python樹林
Pythonの型ヒント:リスト(list)や辞書(dict)の中身まで型を指定する方法
Pythonでリスト(list)や辞書(dict)といったコレクション型の変数を定義する際、単に items: list と型ヒントを書くだけでは不十分な場合があります。 「リストであることは分かるが、その中身は数値なのか文字列なのか?」という情報がないと、要素を... -
Python樹林
Pythonのタイプヒント入門:変数や関数に型情報を付与して可読性を高める方法
Pythonは「動的型付け言語」であり、変数の型(整数、文字列など)を宣言せずにコードを書ける手軽さが魅力です。しかし、大規模な開発やチーム開発においては、「この関数にはどんなデータを渡せばいいの?」「戻り値は何?」といった混乱が生じやすく、... -
Python樹林
Pythonで高機能なコマンドラインツールを作る:argparseモジュールの使い方
単純にコマンドライン引数をリストとして受け取る sys.argv とは異なり、Pythonの標準ライブラリ argparse を使用すると、「ヘルプメッセージの自動生成」「引数の型チェック」「オプション引数の処理」といった高度な機能を簡単に実装できます。 本格的な... -
Python樹林
Pythonコードの改善:アンチパターンから学ぶ、より読みやすく効率的な記述方法(Pythonic)
Pythonには「Pythonic(パイソニック)」と呼ばれる、Python特有の機能や慣習を活かした「推奨される書き方」が存在します。他のプログラミング言語の癖をそのまま持ち込んだり、冗長な記述を続けたりすることは「アンチパターン」と呼ばれ、可読性や保守... -
Python樹林
Pythonのコーディング規約:PEPとPEP 8(スタイルガイド)の基本ルール
Pythonは「読みやすさ」を重視して設計された言語です。誰が書いても同じような、読みやすいコードになるように、Pythonコミュニティには**「PEP 8(ペップエイト)」**と呼ばれる標準的なコーディング規約(スタイルガイド)が存在します。 この記事では... -
Python樹林
PythonでINI設定ファイルを読み込む:configparserのget, getint, getbooleanの使い方
アプリケーションの設定情報(データベースの接続先、デバッグモードの有無、タイムアウト時間など)を外部ファイルに分離することは、開発の基本です。 Pythonでは、古くから使われているシンプルな形式である INIファイル を扱うための標準ライブラリ co... -
Python樹林
Pythonのunittest実行ガイド:コマンドラインからテストを一括・個別実行する方法
unittest で作成したテストコードは、Pythonスクリプトとして直接実行する(if __name__ == "__main__": を書く)だけでなく、コマンドラインから python -m unittest コマンドを使用することで、より柔軟に実行できます。 このコマンドを使うと、ディレク... -
Python樹林
Python unittestの前処理と後処理:setUp, tearDown, setUpClass, tearDownClassの完全ガイド
単体テストを行う際、テストを実行する前にデータベースに接続したり、テスト用の初期データを用意したりといった「前処理」が必要になることがよくあります。また、テスト終了後には、作成した一時ファイルを削除するなどの「後処理」が必要です。 Python... -
Python樹林
Pythonのunittest入門:標準ライブラリによる単体テストの書き方とアサーションメソッド一覧
品質の高いコードを維持するためには、作成した関数やクラスが意図通りに動作するかを検証する「テスト」が不可欠です。Pythonには、標準ライブラリとして unittest モジュールが組み込まれており、追加のインストールなしで本格的な単体テストを行うこと... -
Python樹林
Pythonのloggingでログをファイルとコンソールの両方に出力する方法:Handlersの活用
アプリケーションを開発・運用する際、ログ情報は非常に重要です。開発中はコンソール(画面)でリアルタイムに動作を確認したい一方で、本番運用時や後からエラー解析を行うためには、ログを「ファイル」として永続的に保存しておく必要があります。 Pyth... -
Python樹林
Pythonのlogging:ログ出力フォーマットのカスタマイズと変数一覧
ログ出力において、単にエラーメッセージを表示するだけでは不十分な場合があります。「いつ」「どのファイルの」「どの行で」発生したかというメタ情報があって初めて、ログはデバッグや監視に役立つ情報となります。 Pythonの logging モジュールでは、... -
Python樹林
Pythonのloggingモジュール入門:print関数を使わずにログを出力すべき理由と基本設定
開発中のデバッグや、本番環境での動作確認において、「プログラムがどこまで進んだか」「変数の値はどうなっているか」を確認するために print() 関数を使用することはよくあります。 しかし、本格的なアプリケーション開発においては、print() ではなく...