-
Pythonでマルチスレッドを使ったソケットプログラミングの実装方法を解説
マルチスレッドの基本概念 マルチスレッドは、ほぼすべての現代的なプログラミング言語に共通する中核的な概念です。特にPythonは、スレッドをシンプルに実装できるため、マルチスレッド処理と非常に相性の良い言語といえます。 スレッドとは、プログラム内部にある「サブプログラム」であり、コードの他の部分から独立して実行できる単位のことです。スレッドは同一のコンテキスト内で動作し、メモリなどプログラムの実行リソースを共有します。 そして、1つのプロセスの中で複数のスレッドを同時に実行することを「マルチスレッド」と呼びます。 Pythonでスレッドを実装するためのモジュール Pythonでは、プログラム
-
PythonのaifcモジュールでAIFF・AIFCファイルを読み書きする方法
Python標準ライブラリのaifcモジュールは、AIFF(Audio Interchange File Format)およびAIFF-Cファイルの読み書きをサポートするさまざまな関数を提供しています。AIFF形式はデジタル音声サンプルをファイルに保存するためのフォーマットで、その後継であるAIFF-Cでは音声データの圧縮が可能になっています。なお、aifcモジュールはPython 3.11で非推奨となり、Python 3.13で削除されました。古いバージョンを使用している場合や、互換性のために既存コードを理解する必要がある場合に役立つ知識です。オーディオファイルのパラメータオーディオファイル
-
Pythonのcolorsysモジュールでカラーシステム間の変換を行う方法
RGBカラーモデルとはRGBカラーモデルは、加法混色の三原色である「赤(Red)」「緑(Green)」「青(Blue)」の頭文字から名付けられた加法混色モデルです。これら3つの光を加え合わせることで、さまざまな色を再現します。RGBカラーモデルは、テレビやコンピュータなどの電子システムにおける画像の表現や表示に広く利用されており、人間の色に対する知覚に基づいて設計されています。RGB以外にも、以下のような色モデルの表現方法が存在します。YIQ:輝度(Luminance)と色度(Chrominance)—— コンポジット映像信号で使用されるHLS:色相(Hue)、輝度(Luminance)、彩度
-
Pythonのimghdrモジュールで画像形式を判定する方法
Python標準ライブラリのimghdrモジュールは、ファイルやバイトストリームに含まれる画像の種類(フォーマット)を判別するためのモジュールです。このモジュールには、画像タイプを判定する関数が1つだけ定義されています。imghdr.what() 関数の基本構文imghdr.what(filename, h=None)この関数は、指定されたファイルに含まれる画像データを検査し、画像の種類を表す文字列を返します。filename: 判定対象の画像ファイル名を指定します。h: この引数が指定された場合、filenameは無視され、hで渡されたバイトストリームが検査対象となります。imghdrが認識
-
Pythonのimportlibを使ったインポート処理の実装方法を徹底解説
importlibパッケージは、Pythonのimport文の実装を純粋なPythonコードとして提供する標準ライブラリです。そのため、どのPythonインタープリタにも移植可能であり、C言語などPython以外の言語で実装された内部処理よりも格段に理解しやすいのが特徴です。 さらに、importlibはインポート機構を構成する各コンポーネントを公開しているため、開発者が独自のカスタムオブジェクト(インポーターと呼ばれます)を作成し、インポートプロセスに組み込むことも簡単に行えます。 ここでは、importlibパッケージの主要な関数とサブモジュールについて詳しく見ていきましょう。 impo
-
Pythonのrunpyモジュールでモジュールを検索・実行する方法
Pythonのコマンドラインオプションである-mオプションは、指定されたモジュールを検索し、__main__モジュールとして実行します。この仕組みは、Python標準ライブラリのrunpyモジュールによって内部的に支えられています。runpyを使うと、ファイルシステムではなくPythonのモジュール名前空間を通じてスクリプトを特定し、実行することができます。runpyモジュールが定義する2つの関数run_module()この関数は、指定されたモジュールのコードを実行し、その結果得られるモジュールのグローバル辞書(globals)を返します。mod_name引数には絶対モジュール名を指定します。
-
Pythonのsndhdrモジュールでサウンドファイルの種類を判別する方法
Pythonの標準ライブラリに含まれるsndhdrモジュールは、ファイル内に格納されたサウンドデータの種類を読み取るためのユーティリティ関数を提供します。これらの関数は、以下の5つの属性を持つnamedtuple()オブジェクトを返します。 filetypeサウンド形式を表す文字列。aifc、aiff、au、hcom、sndr、sndt、voc、wav、8svx、sb、ub、ul のいずれかが返されます。 framerateサンプリングレート。実際の値が返されますが、不明な場合やデコードが困難な場合は0になります。 nchannelsチャンネル数。判定できない場合やデコードが困難な場合は
-
Pythonの構成情報へのアクセス方法|sysconfigモジュールの使い方を解説
Pythonのインストールに関する構成情報(コンフィギュレーション情報)には、標準ライブラリのsysconfigモジュールを通じてアクセスできます。取得できる情報には、インストール先のパス一覧や、インストールされたプラットフォーム固有の設定変数などが含まれます。 sysconfigモジュールには構成変数へアクセスするための関数が複数用意されています。ここでは、主要な関数の使い方を順に解説します。 sysconfig.get_config_vars() 引数を付けずに呼び出すと、現在のプラットフォームに関連するすべての構成変数を辞書形式で返します。 sysconfig.get_config_v
-
Pythonのtabnannyモジュールであいまいなインデントを検出する方法
インデントはPythonの構文において極めて重要な要素です。関数、クラス、ループなどで形成されるコードブロックでは、ブロック内のすべての文が同じインデントレベルに従う必要があります。しかし、タブとスペースが混在するなどの不統一なインデントは見た目では気づきにくく、予期しないエラーの原因となります。Python標準ライブラリのtabnannyモジュールを使えば、こうしたインデント規約違反を自動的に検出できます。このモジュールは主に-mオプション付きでコマンドラインから使用することを想定していますが、インタプリタセッション内でインポートして利用することも可能です。コマンドラインでの使い方基本的な実
-
PythonのwaveモジュールでWAVファイルを読み書きする方法を徹底解説
Python標準ライブラリのwaveモジュールは、音声ファイル形式「WAV」を扱うためのシンプルなインターフェースを提供します。このモジュールの関数を使えば、生(raw)形式のオーディオデータをファイルライクなオブジェクトへ書き込んだり、WAVファイルの各種属性情報を読み取ったりすることができます。ファイルを開く方法は、組み込みのopen()関数と同様に「読み取り」または「書き込み」モードを指定しますが、ここではwaveモジュールが提供するopen()関数を使用します。wave.open() の基本wave.open()関数は、音声データの読み書きを行うためにファイルを開きます。引数は2つあり
-
PythonのwinsoundモジュールでWindowsのサウンドを再生する方法
winsoundモジュールは、Windowsオペレーティングシステム向けのPython環境でのみ利用できる標準ライブラリです。このモジュールを使うと、PCスピーカーからのビープ音やWAVファイル、Windowsに登録されたシステムサウンドなどを手軽に再生できます。winsoundが提供する主な関数は以下のとおりです。Beep() ― PCスピーカーからビープ音を鳴らすBeep()関数を呼び出すと、PCのスピーカーからビープ音が鳴ります。この関数には2つの引数が必要です。第1引数のfrequency(周波数)は音の周波数をヘルツ単位で指定し、37〜32,767ヘルツの範囲内でなければなりません。
-
【Python】OpenCVで動画からフレームを抽出して画像として保存する方法
OpenCVとは? OpenCV(Open Source Computer Vision Library)は、機械学習とコンピュータビジョン向けに開発されたオープンソースのプログラミングライブラリです。コンピュータビジョンアプリケーションの開発や、商用製品への機械学習機能の迅速な組み込みを支援する共通基盤を提供しています。 OpenCVには2,500を超える最適化済みアルゴリズムが収録されており、古典的な手法から最先端の手法まで幅広くカバーしています。これらを活用することで、顔検出・顔認識、物体の識別、動画内の人間の動作の分類、カメラの動きのトラッキング、複数枚の画像をつなぎ合わせた高解像度
-
Pythonで画像を読み込む方法:OpenCVとPILを使った基本操作を解説
OpenCVによる画像処理OpenCV(Open Source Computer Vision)は、機械学習とコンピュータビジョンのために開発されたオープンソースのプログラミングライブラリです。コンピュータビジョンアプリケーション開発のための共通基盤を提供し、商用製品への機械学習の導入を迅速化します。OpenCVには、2,500以上の最適化されたアルゴリズムが含まれており、古典的な手法から最先端の手法まで、コンピュータビジョンと機械学習の両分野をカバーしています。これらの豊富なアルゴリズムにより、顔検出・認識、物体识别、動画内の人間の動作の分類、カメラの動きの追跡、複数画像の結合による高解像度
-
プログラマー必見!Python開発に役立つ実用的なヒントとコツ集
本記事では、競技プログラミングや業務でのコーディングに役立つ、実用的なPythonのテクニックをご紹介します。これらのコツを活用すれば、コード量を削減しながら実行効率を最適化でき、より簡潔で読みやすいプログラムを書けるようになります。1. 2つの変数の値をその場で入れ替える(スワップ)一時変数を使わずに、タプルのアンパックを利用して値を交換できます。これはPythonらしい書き方の代表例です。x, y = 50, 70 print(x, y) # 値の入れ替え x, y = y, x print(x, y)出力結果50 70 70 502. リストから1つの文字列を作成するjoin()メソッ
-
PyTorchを使った線形回帰の実装方法を徹底解説
線形回帰とは 単純線形回帰の基礎 2つの連続変数の間にある関係性を把握するために用いられる手法です。 具体例: x = 独立変数(例:体重) y = 従属変数(例:身長) 関係式は y = αx + β という形式で表されます。 それでは、実際にプログラムを通して単純線形回帰の仕組みを見ていきましょう。 #単純線形回帰 import numpy as np import matplotlib.pyplot as plt np.random.seed(1) n = 70 x = np.random.randn(n) y = x * np.random.randn(n) colo
-
PythonのlxmlでWebスクレイピングを実装する方法|Yahoo Financeから株価データを抽出
Webスクレイピングは、データサイエンス愛好家だけでなく、Webサイトの仕組みを深く掘り下げたい学生や学習者にとっても非常に魅力的な技術です。Pythonには強力なスクレイピングライブラリが数多く用意されています。 Scrapy Urllib BeautifulSoup Selenium Requests lxml 本記事では、その中でもlxmlライブラリを使ってWebページからデータを抽出する方法を解説します。lxmlはC言語製のXML解析ライブラリ「libxml2」をベースに構築されており、Beautiful Soupよりも高速に動作するのが大きな魅力です。一方で、特にWindows環
-
PythonのconfigparserモジュールでINI形式の設定ファイルを読み書きする方法
configparserモジュールとは Pythonの標準ライブラリに含まれるconfigparserモジュールは、Microsoft Windowsで古くから使われてきたINI形式の設定ファイルを読み書きするための機能を提供します。設定ファイルには通常「.ini」という拡張子が付けられます。 INIファイルの基本構造 INIファイルは複数のセクションで構成され、各セクションは[セクション名]というヘッダー行で始まります。角括弧の中にセクション名を記述します。セクションの後には、=または:で区切られたキーと値のペアが続きます。また、#や;で始まる行はコメントとして扱われます。以下にINIファ
-
Python(Pillow)で画像サイズに基づいて画像をフィルタリング・リサイズする方法
Pythonには、Pillow、Python Imaging Library(PIL)、scikit-image、OpenCVなど、画像処理に使えるライブラリが多数用意されています。本記事では、その中でもPillowを使用します。Pillowは画像の操作に関する標準的な手順を数多く提供しており、JPEG、PNG、GIF、TIFF、BMPなど、幅広い画像ファイル形式に対応しているためです。なお、PillowはPython Imaging Library(PIL)をベースに構築されたライブラリであり、元となったPILよりも多くの機能を備えています。PillowのインストールPillowはpipを使
-
Pythonのinspectモジュールでライブオブジェクトを検査する方法
inspectモジュールとは Pythonの標準ライブラリ「inspect」モジュールには、モジュール、クラス、メソッド、関数、コードオブジェクトなど、実行中のオブジェクト(ライブオブジェクト)に関する有用な情報を取得するための関数が多数用意されています。これらの関数を活用することで、型チェック、ソースコードの取得、クラスや関数の検査、インタプリタスタックの調査などが可能になります。 主な関数 getmembers() – オブジェクトのすべてのメンバーを、名前と値のペアからなるリストとして返します。リストは名前順にソートされます。オプションで述語(predicate)を指定すると、述語が真
-
PythonのplistlibモジュールでMac OS Xの.plistファイルを生成・解析する方法
はじめに拡張子が「.plist」のファイルは、Mac OS Xのアプリケーションが設定情報(プロパティ)を保存するために使用するファイルです。Pythonの標準ライブラリであるplistlibモジュールは、このプロパティリストファイルの読み書きを行うためのインターフェースを提供します。plistファイル形式と扱えるデータ型plistファイル形式は、辞書(dict)、リスト、数値、文字列といった基本オブジェクト型をシリアライズします。通常、最上位のオブジェクトは辞書です。plistファイルへの書き出しと読み込み(パース)には、それぞれdump()関数とload()関数を使用します。また、シリアラ