-
Python樹林
Pythonで浮動小数点数を比較する:math.isclose()の使い方と誤差への対処
コンピュータで小数を扱う場合、内部的には2進数で表現されるため、どうしても微細な「計算誤差」が発生します。そのため、浮動小数点数(float)同士を == 演算子で比較すると、人間が期待する結果にならないことがあります。 Python 3.5以降では、この問... -
Python樹林
Pythonで浮動小数点数の表示桁数を指定する:format()とf-stringの使い方
Pythonで浮動小数点数(float)を print() で表示すると、通常は見やすい長さに自動的に丸められて出力されます。しかし、科学技術計算やデバッグなどで、より多くの桁数(または特定の桁数)を表示させたい場合があります。 この記事では、format() 関数... -
Python樹林
Pythonで整数と浮動小数点数を変換する:int()とfloat()の使い方と注意点
Pythonで数値計算を行う際、整数(int)と浮動小数点数(float)の型変換(キャスト)は頻繁に使用される操作です。 例えば、整数のデータを計算のために小数にしたり、逆に小数の計算結果から小数点以下を取り除いて整数にしたりする場合です。 この記事... -
Python樹林
Pythonで数値を2進数・8進数・16進数の文字列に変換する:bin, oct, hex関数の使い方
プログラミングにおいて、10進数の数値をコンピュータが解釈しやすい2進数や、メモリダンプなどで使われる16進数の形式に変換して表示したい場面があります。 Pythonには、数値をこれらのN進数表記の文字列に変換するための便利な組み込み関数が用意されて... -
Python樹林
Pythonで2進数・8進数・16進数を扱う:数値リテラルのプレフィックスと表記法
Pythonのプログラム内で数値を扱う際、通常は10進数(0〜9)を使用しますが、用途によっては2進数、8進数、16進数で記述した方が直感的な場合があります。 例えば、ビット演算を行う場合は2進数が、ファイルパーミッションの設定には8進数が、色情報の指定... -
Python樹林
Pythonでディレクトリを階層ごと作成する:os.makedirsの使い方とexist_okオプション
ファイルを出力する際、保存先のディレクトリ(フォルダ)がまだ存在しない場合、事前に作成しておく必要があります。 Pythonの標準ライブラリ os モジュールには、ディレクトリを作成するための関数として os.mkdir() と os.makedirs() の2つが用意されて... -
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...