-
Pythonでのファイル読み書き:with open()による安全なファイル操作
この記事では、Pythonでテキストファイルの読み込みと書き込みを行うための基本的な方法を解説します。特に、ファイルを安全かつ確実に扱うための現代的なwith文の使用法に焦点を当てます。 モダンで安全なファイル操作:with文 Pythonでファイルを操作す... -
Pythonでのパス操作:os.pathとモダンなpathlibの比較
この記事では、Pythonでファイルパスを操作するための伝統的なos.pathモジュールと、より現代的で推奨されるオブジェクト指向のアプローチを提供するpathlibモジュールの主要な機能について比較しながら解説します。 絶対パスと相対パスの操作 パスの形式... -
Pythonによるファイルパス操作:osモジュールとモダンなpathlib
この記事では、Pythonでファイルやフォルダのパスを扱うための基本的な方法について解説します。OS(Windows, macOS, Linux)間の差異を吸収し、環境に依存しない堅牢なコードを書くためのosモジュールと、よりモダンで推奨されるpathlibモジュールの使い... -
Pythonと正規表現でテキストから電話番号とメールアドレスを自動抽出する
この記事では、Pythonのre(正規表現)モジュールとpyperclip(クリップボード操作)モジュールを組み合わせて、クリップボードにコピーされたテキストから、電話番号とメールアドレスを自動で抽出し、整形して再びクリップボードに戻す実用的なツールを作... -
Python正規表現:re.IGNORECASE, re.DOTALL, re.VERBOSEフラグの組み合わせ
この記事では、Pythonの正規表現をコンパイルする際に、パターンの動作を細かく制御するためのオプションフラグについて解説します。特に、複数のフラグをどのように組み合わせるかに焦点を当てます。 主要な正規表現フラグ re.compile()の第2引数に指定で... -
Python正規表現:ワイルドカード.、.*パターン、sub()による置換
この記事では、Pythonの正規表現で非常に強力なワイルドカード文字であるドット.、それを用いたドットスター(.*)パターン、そしてマッチした文字列を置換するsub()メソッドについて解説します。 ドット.:任意の1文字にマッチ(ワイルドカード) 正規表現... -
【C++】ストリームの読み書き位置を移動する方法 (seekg, tellg)
はじめに C++のファイルストリーム (fstream) や文字列ストリーム (stringstream) を扱う際、通常は先頭から末尾へ順番に読み書きを行いますが、時には「特定のバイト位置まで一気に移動したい」「一度読んだ場所まで戻って、もう一度読み直したい」という... -
【C++】ファイルの内容を全て一度に読み込む方法 (istreambuf_iterator)
はじめに C++でファイルの内容を全て vector や string に読み込みたい場合、while ループで1文字または1行ずつ読み込んでいくのが基本的な方法です。しかし、この方法はコードが冗長になりがちです。 よりモダンで簡潔なアプローチが、std::istreambuf_it... -
【C++】自作クラスを入出力ストリーム (ostream/istream) に対応させる方法
はじめに C++では、cout(コンソール出力)や cin(コンソール入力)だけでなく、ofstream(ファイル出力)や stringstream(文字列ストリーム)など、様々な種類の「ストリーム」が提供されています。これらは全て、ostream(出力ストリーム)とistream(... -
【C++17】std::filesystem::path の使い方 | パスの構築と連結
はじめに C++17で導入された<filesystem>ライブラリは、ファイルシステムのパスを統一的に扱うための**std::filesystem::path**というクラスを提供します。このpathオブジェクトは、OSによるパス区切り文字の違い(Windowsの\とLinux/macOSの/)など... -
【C++17】filesystemライブラリのエラーハンドリング(error_codeと例外)
はじめに C++17の<filesystem>ライブラリでファイル操作を行う際、パスが存在しない、アクセス権がない、などの理由でエラーが発生することがあります。これらのエラーに適切に対処しないと、プログラムが予期せずクラッシュする可能性があります。 ... -
Python正規表現:^と$で行頭・行末にマッチさせる方法
この記事では、Pythonの正規表現で、文字列の行頭または行末といった特定の位置にパターンをマッチさせるための特殊文字、キャレット(^)とドル記号($)について解説します。これらはアンカーと呼ばれます。 キャレット^:文字列の先頭にマッチ 正規表現パタ... -
Python正規表現:角括弧[]で独自の文字集合を定義する方法
この記事では、Pythonの正規表現で\d(数字)や\w(英数字)といった定義済みの文字集合(キャラクタークラス)以外に、角括弧[]を用いて独自の文字集合を定義する方法について解説します。 角括弧[]による文字集合の定義 角括弧[]を使用すると、マッチさ... -
Python正規表現:\d, \w, \sなどの文字集合(キャラクタークラス)の使い方
この記事では、Pythonの正規表現で特定の文字グループ(数字、英数字、空白など)にマッチさせるための便利なショートカットである、文字集合(キャラクタークラス)について解説します。 主要な文字集合 正規表現では、頻繁に使用される文字の集まりに対... -
Python正規表現:findall()ですべてのマッチをリストとして取得する方法
この記事では、Pythonの正規表現モジュールreが提供するfindall()メソッドについて解説します。search()メソッドが最初に見つかった一つのマッチオブジェクトを返すのに対し、findall()は文字列内にあるパターンに一致するすべての部分文字列をリストとし... -
Python正規表現:貪欲マッチと非貪欲マッチの違い
この記事では、Pythonの正規表現における量指定子(*, +, {}など)が持つ2つのマッチングモード、貪欲マッチと非貪欲マッチの違いについて解説します。 貪欲マッチ(Greedy Matching) デフォルトでは、正規表現の量指定子は貪欲に動作します。これは、指... -
Python正規表現:グルーピングと量指定子の基本
この記事では、Pythonの正規表現モジュールreを使い、テキストパターンをより柔軟に、かつ強力に検索するためのグルーピングと量指定子の基本について解説します。 丸括弧 () を用いたグルーピング 正規表現の中で丸括弧()を使うと、パターンの一部をグル... -
Pythonで正規表現を使わずに電話番号を検索する方法
この記事では、正規表現(regex)という強力なツールを使わずに、Pythonの基本的な文字列操作だけで、テキスト内から特定のパターン(この場合は電話番号)を検索する方法について解説します。この手動のアプローチを理解することは、正規表現の有用性を知... -
Pythonのpyperclipモジュールでクリップボードを操作する方法
この記事では、Pythonプログラムからシステムのクリップボード(コピー&ペースト機能)を操作するためのサードパーティ製モジュール、pyperclipについて解説します。 pyperclipモジュールのインストール pyperclipはPythonの標準ライブラリではないため、... -
Python文字列のstrip(), lstrip(), rstrip()による空白・文字の除去
この記事では、Pythonの文字列の先頭や末尾から不要な文字(デフォルトでは空白文字)を削除した新しい文字列を返す**strip()、lstrip()、rstrip()**メソッドについて解説します。 空白文字の除去 これらのメソッドの最も一般的な用途は、文字列の前後にあ... -
【C++17】filesystemでファイルやディレクトリをコピーする方法
はじめに C++で、ファイルのバックアップを作成したり、ディレクトリ構造を丸ごと複製したりしたい場合があります。 C++17で導入された <filesystem> ライブラリは、このファイルシステムのコピー操作を、OSに依存しない移植性の高いコードで簡単に... -
【C++17】std::filesystem::rename でファイルやディレクトリの名前を変更/移動する方法
はじめに C++で、プログラムからファイルやディレクトリの名前を変更したり、別のディレクトリへ移動させたりしたい場合があります。 C++17で導入された <filesystem> ライブラリは、このための**std::filesystem::rename()**という関数を提供してい... -
【C++17】filesystemでファイルやディレクトリを削除する方法
はじめに C++で、プログラムが生成した一時ファイルや、空になったディレクトリを削除したい場合があります。 C++17で導入された <filesystem> ライブラリは、このファイルシステムの削除操作を、OSに依存しない移植性の高いコードで簡単に行うため... -
【C++17】filesystemでディレクトリ(フォルダ)を作成する方法
はじめに C++で、マクロの実行結果を保存するための新しいフォルダを自動で作成したい、という場面はよくあります。 C++17で導入された <filesystem> ライブラリは、このディレクトリ作成をOSに依存しない、移植性の高いコードで簡単に行うための関... -
【C++17】filesystemでディレクトリ内のファイル一覧を列挙する方法
はじめに C++で、特定のディレクトリに含まれる全てのファイルやフォルダの一覧を取得したい、という場面は頻繁にあります。 C++17で導入された <filesystem> ライブラリは、この「ディレクトリ内のエントリ(ファイルやフォルダ)を走査する」ため... -
【C++17】std::filesystem::exists でファイルやディレクトリの存在を確認する方法
はじめに C++でファイルを開いたり、ディレクトリを作成したりする際、操作の前に「そのパスが本当に存在するか」を確認することは、エラーを未然に防ぐ上で非常に重要です。 C++17で導入された <filesystem> ライブラリは、この存在確認を簡単に行... -
【C++17】std::filesystem でファイルのサイズをバイト単位で取得する方法
はじめに C++でファイル操作を行う際、ファイルのダウンロード進捗を表示したり、読み込みに必要なメモリ量を判断したりするために、ファイルのサイズを知りたい場面があります。 C++17で導入された <filesystem> ライブラリは、このファイルサイズ... -
【C++17】std::filesystemで現在の作業ディレクトリを取得・変更する方法
はじめに C++でファイル操作を行う際、プログラムが現在どのディレクトリを基準に動作しているか、つまり「現在の作業ディレクトリ(カレントディレクトリ)」を知りたい、あるいは変更したい場面があります。 C++17で導入された <filesystem> ライ... -
【C++17】std::filesystem で相対パスを絶対パスに変換する方法
はじめに C++でファイルパスを扱う際、「./sub/file.txt」のようなカレントディレクトリからの相対パスを、「C:\Users\Username\Documents\sub\file.txt」のような完全な絶対パスに変換したい場面があります。 C++17で導入された <filesystem> ライ... -
【C++17】std::filesystem でパスからファイル名 (filename) を取得する方法
はじめに C++で /home/user/document.txt のようなフルパスの文字列を扱う際、「ディレクトリ部分を除いた、純粋なファイル名 (document.txt) だけを抜き出したい」という場面は非常に頻繁にあります。 C++17で導入された <filesystem> ライブラリの...