Python
python向け機械学習ライブラリであるscikit-learnを使って、混同行列を計算します。 scikit-learnのインストール 多くの場合は下記コマンドでインストール可能です。 より詳しいインストール方法は公式ドキュメントを参照してください。 pipの場合 pip insta…
Pythonのネットワーク計算パッケージ「NetworkX」を使用して重み付き有向グラフの最短経路をダイクストラ法で求めます。 NetworkXのインストール 下記のようにpipでインストールができます。 pip install networkx 今回はNetworkX2.2を使用しました。 グラフ…
コードを並列実行する方法はマルチスレッドを使う方法とマルチプロセスを使う方法がありますが、Pythonはグローバルインタプリタロック(GIL)と呼ばれる仕組みにより同一プロセス内では常に1スレッドしか進行できません。そのため、マルチスレッドを使う方…
RAWソケットを使ってWindowsでパケットキャプチャを行います。 実行には管理者権限が必要です。このスクリプトでキャプチャできるのはIPから上位のレイヤーであり、Ethernetヘッダはキャプチャできません。 コード import socket MYHOST = "自分のIPアドレス…
Windows APIのSetCursorPosをpythonのctypesライブラリから呼び出し、マウスカーソルの座標を指定します。 コード 下記コードはx座標100・y座標50の地点へマウスカーソルを移動させます import ctypes # 座標(x, y)にマウスカーソルを移動させる def SetCurs…
インストール まず、下記コマンドでpyOpenSSLパッケージをインストールします。 cryptographyパッケージも同時にインストールされます。 $ pip install pyopenssl 環境によってはpipではなくpip3を使ってインストールを行います。 コード 鍵長4096bitのRSA暗…
pythonの標準ライブラリのひとつであるcsvを使うと、簡単にcsvファイルを読み込むことができます。 使い方を見ていきましょう。 CSVファイル 読み込み対象のcsvファイルとして下記のファイル(sample.csv)を使います。 name,age,height,weight yamada,20,17…
classに__iter__と__next__メソッドを実装することで、反復処理をサポートさせることができます。 反復処理をサポートしたclassは、for文などに対してiterable objectとして与えることが可能です。 コード # 反復処理をサポートしたクラス class iter_sample…
pythonの標準ライブラリのひとつであるconfigparserを使うと、設定ファイルを簡単に扱えるようになります。 これを使うことで、ソースコード中に設定をべた書きするよりもユーザに優しいスクリプトが書けるでしょう。 設定ファイルの用意 test.confとして、…
PythonからGetModuleBaseNameを呼び出し、プロセス名を取得します。 Windows APIを利用しているため、Windowsでしか動作しません。 コード import ctypes # 引数としてプロセスIDを与え、プロセス名を取得する def get_name_by_pid(pid): PROCESS_ALL_ACCESS…
現在のローカル時刻をタイムゾーン付きのISO 8601形式(YYYY-MM-DDThh:mm:ss±hh:mm)で取得します。 Python3.6からはnaiveなdatetimeオブジェクトもastimezone()を使えるようになりました。 import datetime # --- python3.3以降 --- utctime = datetime.dat…
Python3.6で実装されたsecretモジュールを使うと、暗号学的に強い乱数を簡単に得ることができます。 これを使ってランダムなパスワードを生成することができます。 import secrets import string # パスワードの文字数 num = 16 # パスワードに使用する文字…