一連の処理を.bat化して1クリックのみで処理できるようにした。 まずはイベントログの画面出力。コマンドはwmicログの中身全てを出力すると画面上では見づらいのでここでは作成時間とメッセージのみ出力 wmic ntevent where "(LogFile = 'system') get TimeG…
MATLABからの移行組にはとっつき辛いところが多々あるnumpyの配列,ndarrayの気付いた点まとめ。 numpyは基本、横ベクトル xx.shape -> (n, ) はベクトル, x.shape -> (n,m) は配列 array([1, 2, 3])やarange(10)で作成されるのはベクトル ベクトルは標記こ…
listやndarrayの中身をエクセルに張り付けて検証や検討をしたい場合に有効。 肝になるのが・リスト内容標記を使って数値を文字列にして末尾に改行コード\nを追加・"".join(データ)で文字を結合 import pyperclip def copy(data): temp = [str(i) + "\n" for…
グラフ枠(Spines)を一度描画した後に変更する方法。 グラフ枠はax.Spines{"Bottom"} ax.Spines{"Top"} ax.Spines{"Left"} ax.Spines{"Right"}に枠線のインスタンスがあり,色変更は ax.Spines{"**"}.set_color(色)太さ変更は ax.Spines{"**"}.set_linewidt…
matplotlibでアニメーションほど早い更新周期ではないものの,イベント(たとえばグラフをダブルクリック)でグラフを更新(変化)させたい場合など,グラフ更新の関数を実行してあげる必要がある。 最も一般的なのは canvas.draw()しかしこれがすごく遅い。 Fi…
新しい環境にpipでpywin32をインストールした時,過去に動いていたプログラムでImportError: DLL load failed when importing win32clipboard とエラーが発生。 (実際は日本語のエラー).dllにパスが通っていなのか、などいろいろ試したがexe版のpywin32で…
PycharmのPython Console使用時に発生したエラー。おそらくbackednをpyqt4からwxに変更したことも関係あると思われる。C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2017.1\helpers\pydev\pydev_ipython\inputhookwx.py def inputhook_wx3()…
Pycharmはずっと2016.3バージョンを使っていたが知らぬ間に2017.1という新バージョンに。機能もデバッグの高速化とPandasの可視化と魅力的だったため アップデートしたところ,前は普通に動いていたプログラムが立て続けに Pythonのcrashで動かず。。その時…
知らなかった。連続で処理したものをリストでもっておきたい時に便利。 たとえば グラフウィンドウ内にgridspecを使って大量にaxesを設定する場合 row = 4 line = 4 gs = gridspec.Gridspec(row, line) ax = [fig.addsubplot(gs[num]) for num in row * line…
wxFormBuilderで作ったGUIはwxPython2までしか対応していないせいか wxPython3だとエラーでうまく動かいない場合があり。変更(修正)が必要な項目のまとめ。【バージョン】 wxformbuilder:3.5.1-RC1(Unicode) wxPython-Phoenix: 3.0.3dev2749+f803d20 【要変…
・行数の表示 - ON ・メソッド間の区切り線 - ON ・スペースの可視化 - ON ・補完は大文字小文字を区別するか - None(しない) ・スペルチェック - OFF(しない) これがONだと適当な変数名にいちいちアラートが出る。 ・dict型を記述する際の配置 - Align on c…
Python2.7から3.5に移行して,py2exeが使えなくなってしまったので代わりにcx_Freezeを使った時のエラー エラー発生時のキーワードは KeyError: 'TCL_LIBRARY' (何故かエラー再現できなくなってしまった…。)解決方法はsetup.pyに下記を記載すること import …
オーバーフローといっていいのかよくわからないけど文字宣言のところで変数の意味が分かるように掛け算で数値を代入したとき,具体的には unsigned long time_millisec = 135 * 1000 //msec としてミリ秒にするため1000をかけて代入したところなぜか代入され…
Gohlkeさんのサイトからwhlファイルをダウンロードしてきて手動?でインストールしようとした際に発生したエラー。エラーメッセージは「***.whl is not a supported wheel on this platform.」最初はpythonのバージョンとライブラリのバージョンが違うために…
任意のカレントディレクトリに自動で変更するには起動時に自動実行されるstartup.mを元のカレントディレクトリに作成し,そこにcd c:\(任意のアドレス)と記載しておく。するとMATLAB起動時に自動的にスクリプトが実行されカレントディレクトリが変更される。 …
PC入れ替えなどで前の環境(文字色,背景色など)を新しい環境に引き継ぎたい場合,下記に設定ファイルがあるのでそれを新しい環境へコピーする。 Location: C:\Users\(user_name)\AppData\Roaming\MathWorks\MATLAB\(version) File: matlab.prfhttps://jp.math…
グラフの外にグラフ情報を表示したい場合,または対数グラフ上にテキストを表示したい場合の方法。対数グラフ内にテキストを表示する場合,axes.text()では位置合わせが難しい。そういう場合はfig内での座標でテキスト表示するのが有効。 テキストの位置はグ…
エクセルの並び替えの様に優先するキー(軸)を指定した並び替えが少しめんどくさい。 なぜそれ用の関数orオプションがないのだろうか…。方法としては キーにする軸のみargsortでソート後のインデックスを取り出す そのインデックスを使ってソートする前の配列…
GetWindowTextで文字列が取得できない場合(他プロセスのコントロール文字列は取得できないらしい、意味不明)は指定のハンドルにメッセージを投げて文字列を取得する。投げるメッセージの定数はwinuser32.h内に記載されている。ハンドルはspy++等で調べること…
win32apiのGetWindowTextを使ってウィンドウの文字列を取得する方法 1.EnumWindowsでトップレベル(アクティブという意味ではない)のウィンドウハンドルを取得 EnumWindowsは引数にコールバック関数が必要なのでコールバック関数を定義↓ 2.GetWindowTextLengt…
文字列が数値かどうか判定するstr.isdigits"."が含まれていると数値として判定してくれない。 str.isdigits("123") >> True str.isdigits("12.3") >> False 回避方法としては簡単なものはreplaceメソッドで"."を""に置換してしまうこと。 str.isdigits("12.3…
動画を読み込んで表示するプログラムでエラーが発生。 import cv2 src_m = cv2.VideoCapture("ファイル名") r, f = src_m.read() #←1フレーム読み込み cv2.imshow('title', f) #←フレーム表示 aviファイルはエラーが出ずに表示できるものとできない物があっ…
win32apiの user32.GetCursorPosとuser32.GetAsyncKeyStateを組み合わせて 左クリックした位置の座標を取得し,コンソールに出力するプログラム下記は2回クリックして1回目が左上,2回目を右下とする矩形の座標を呼び出し元に返すプログラム # -*- coding: ut…
関数名は user32.GetAsyncKeyState(vk_leftbutton) キーボードだけでなくマウスクリックも検知できる。戻り値が0x8000, 2進数だと16bitで 0b1000 0000 0000 0000 が返ってこれば押されてると判定。 押されていない時の戻り値は確か0だったはず。引数にはバ…
デスクトップ座標をwin32apiを使ってゲットするにはまずc言語での構造体をpython上で定義してあげる必要がある。今回は構造体用にクラスを作ってそのインスタンスを使う。 # 構造体を定義 class _pointer(ctypes.Structure): _fields_ = [ ('x', ctypes.c_lo…
ネットを探すとどうやらH.264でエンコードする際によく出るみたいだけど,自分のところではwmvでも発生した。原因はおそらくソースの動画サイズが 495x697で奇数だったこと。FFmpegのオプションで -s 494x696 を指定したら上手くいった。 H.264でのエラーは…
y2軸のグラフを書いてそれぞれの軸の凡例をまとめて表示しようとした際,普通にlengedを呼ぶだけだとうまくいかない。グラフのハンドルと表示名を引数に与えてあげる必要がある。それでもはまったのがグラフのハンドルは通常リストなのでlegendにそのまま与え…
OCRモジュールのpytesseractのPython版を使ってみた。最初はtesseractを使ってみたけど何故かPythonが動作停止に。その前にまずpythonのtesseractはC++のラッパーなのでtesseract-OCRのインストールが必要。 github.comその次にPythonで下記を実行 import te…
Numpyで動作は確認しているがlistで動作するかは未確認 -> 2019.5.13 listの場合を追加 これは覚えておくと便利 numpyの場合 listの場合 numpyの場合 条件に合うものを抽出 a = numpy.array([1,2,3,4,5,6]) a = a[a%2 ==0] >>array([2, 4, 6]) #←条件が合う…