俺言語。

自分にしか理解できない言語で書かれた備忘録

【cmd】コマンドプロンプトからイベントログ出力と削除

cmd

一連の処理を.bat化して1クリックのみで処理できるようにした。 まずはイベントログの画面出力。コマンドはwmicログの中身全てを出力すると画面上では見づらいのでここでは作成時間とメッセージのみ出力 wmic ntevent where "(LogFile = 'system') get TimeG…

【Python】numpy ndarrayとmatrixの特徴 覚書き

MATLABからの移行組にはとっつき辛いところが多々あるnumpyの配列,ndarrayの気付いた点まとめ。 numpyは基本、横ベクトル xx.shape -> (n, ) はベクトル, x.shape -> (n,m) は配列 array([1, 2, 3])やarange(10)で作成されるのはベクトル ベクトルは標記こ…

【Python】listやndarrayの中身をエクセルに張り付けるためにクリップボードへコピー

listやndarrayの中身をエクセルに張り付けて検証や検討をしたい場合に有効。 肝になるのが・リスト内容標記を使って数値を文字列にして末尾に改行コード\nを追加・"".join(データ)で文字を結合 import pyperclip def copy(data): temp = [str(i) + "\n" for…

【Python】listの掛け算は危険

【Python】グラフ枠(Spines)の色・太さ変更

グラフ枠(Spines)を一度描画した後に変更する方法。 グラフ枠はax.Spines{"Bottom"} ax.Spines{"Top"} ax.Spines{"Left"} ax.Spines{"Right"}に枠線のインスタンスがあり,色変更は ax.Spines{"**"}.set_color(色)太さ変更は ax.Spines{"**"}.set_linewidt…

【Python】matplotlibの手動で描画更新

matplotlibでアニメーションほど早い更新周期ではないものの,イベント(たとえばグラフをダブルクリック)でグラフを更新(変化)させたい場合など,グラフ更新の関数を実行してあげる必要がある。 最も一般的なのは canvas.draw()しかしこれがすごく遅い。 Fi…

【Python】win32clipboardが無いと言われる

新しい環境にpipでpywin32をインストールした時,過去に動いていたプログラムでImportError: DLL load failed when importing win32clipboard とエラーが発生。 (実際は日本語のエラー).dllにパスが通っていなのか、などいろいろ試したがexe版のpywin32で…

【Python】Pycharm + wx3 でエラー

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()…

【Python】Pycharmアップデート後にPythonクラッシュ多発

Pycharmはずっと2016.3バージョンを使っていたが知らぬ間に2017.1という新バージョンに。機能もデバッグの高速化とPandasの可視化と魅力的だったため アップデートしたところ,前は普通に動いていたプログラムが立て続けに Pythonのcrashで動かず。。その時…

【Python】リスト内包表記の戻り値はリスト

知らなかった。連続で処理したものをリストでもっておきたい時に便利。 たとえば グラフウィンドウ内にgridspecを使って大量にaxesを設定する場合 row = 4 line = 4 gs = gridspec.Gridspec(row, line) ax = [fig.addsubplot(gs[num]) for num in row * line…

【Python】wxFormBuilderがwxPython3に対応できていない部分

wxFormBuilderで作ったGUIはwxPython2までしか対応していないせいか wxPython3だとエラーでうまく動かいない場合があり。変更(修正)が必要な項目のまとめ。【バージョン】 wxformbuilder:3.5.1-RC1(Unicode) wxPython-Phoenix: 3.0.3dev2749+f803d20 【要変…

【Python】Pycharm設定覚書き

・行数の表示 - ON ・メソッド間の区切り線 - ON ・スペースの可視化 - ON ・補完は大文字小文字を区別するか - None(しない) ・スペルチェック - OFF(しない) これがONだと適当な変数名にいちいちアラートが出る。 ・dict型を記述する際の配置 - Align on c…

【Python】cx_Freezeでexeファイルを作成した時のエラー

Python2.7から3.5に移行して,py2exeが使えなくなってしまったので代わりにcx_Freezeを使った時のエラー エラー発生時のキーワードは KeyError: 'TCL_LIBRARY' (何故かエラー再現できなくなってしまった…。)解決方法はsetup.pyに下記を記載すること import …

【Arduino,C】文字宣言時にオーバーフロー?

オーバーフローといっていいのかよくわからないけど文字宣言のところで変数の意味が分かるように掛け算で数値を代入したとき,具体的には unsigned long time_millisec = 135 * 1000 //msec としてミリ秒にするため1000をかけて代入したところなぜか代入され…

【Python】pipでwhlファイルをインストールするときのエラー

Gohlkeさんのサイトからwhlファイルをダウンロードしてきて手動?でインストールしようとした際に発生したエラー。エラーメッセージは「***.whl is not a supported wheel on this platform.」最初はpythonのバージョンとライブラリのバージョンが違うために…

【MATLAB】起動時にカレントディレクトリを自動で変更

任意のカレントディレクトリに自動で変更するには起動時に自動実行されるstartup.mを元のカレントディレクトリに作成し,そこにcd c:\(任意のアドレス)と記載しておく。するとMATLAB起動時に自動的にスクリプトが実行されカレントディレクトリが変更される。 …

【MATLAB】設定ファイルの保存場所

PC入れ替えなどで前の環境(文字色,背景色など)を新しい環境に引き継ぎたい場合,下記に設定ファイルがあるのでそれを新しい環境へコピーする。 Location: C:\Users\(user_name)\AppData\Roaming\MathWorks\MATLAB\(version) File: matlab.prfhttps://jp.math…

【Python】グラフの外にテキスト表示 or 対数グラフ内の右隅にテキスト表示

グラフの外にグラフ情報を表示したい場合,または対数グラフ上にテキストを表示したい場合の方法。対数グラフ内にテキストを表示する場合,axes.text()では位置合わせが難しい。そういう場合はfig内での座標でテキスト表示するのが有効。 テキストの位置はグ…

【Python】numpy2次元配列でキーを使ったソートの方法

エクセルの並び替えの様に優先するキー(軸)を指定した並び替えが少しめんどくさい。 なぜそれ用の関数orオプションがないのだろうか…。方法としては キーにする軸のみargsortでソート後のインデックスを取り出す そのインデックスを使ってソートする前の配列…

【Python】GetWindowTextで取得できない文字列を取得する方法(win32api SendMessage WM_GETTEXT)

GetWindowTextで文字列が取得できない場合(他プロセスのコントロール文字列は取得できないらしい、意味不明)は指定のハンドルにメッセージを投げて文字列を取得する。投げるメッセージの定数はwinuser32.h内に記載されている。ハンドルはspy++等で調べること…

【Python】ウィンドウのタイトル文字列を取得する方法(win32api user32 GetWindowText)

win32apiのGetWindowTextを使ってウィンドウの文字列を取得する方法 1.EnumWindowsでトップレベル(アクティブという意味ではない)のウィンドウハンドルを取得 EnumWindowsは引数にコールバック関数が必要なのでコールバック関数を定義↓ 2.GetWindowTextLengt…

【Python】str.isdigitsは小数を判定できない罠

文字列が数値かどうか判定するstr.isdigits"."が含まれていると数値として判定してくれない。 str.isdigits("123") >> True str.isdigits("12.3") >> False 回避方法としては簡単なものはreplaceメソッドで"."を""に置換してしまうこと。 str.isdigits("12.3…

【Python】openCVのcv2.imshow()でエラー error: (-215) size.width>0 && size.height>0 in function cv::imshow

動画を読み込んで表示するプログラムでエラーが発生。 import cv2 src_m = cv2.VideoCapture("ファイル名") r, f = src_m.read() #←1フレーム読み込み cv2.imshow('title', f) #←フレーム表示 aviファイルはエラーが出ずに表示できるものとできない物があっ…

【Python】マウス左クリックした位置の画面座標を取得しコンソールに出力

win32apiの user32.GetCursorPosとuser32.GetAsyncKeyStateを組み合わせて 左クリックした位置の座標を取得し,コンソールに出力するプログラム下記は2回クリックして1回目が左上,2回目を右下とする矩形の座標を呼び出し元に返すプログラム # -*- coding: ut…

【Python】win32apiを使ってあるキーが押されたか検知する

関数名は user32.GetAsyncKeyState(vk_leftbutton) キーボードだけでなくマウスクリックも検知できる。戻り値が0x8000, 2進数だと16bitで 0b1000 0000 0000 0000 が返ってこれば押されてると判定。 押されていない時の戻り値は確か0だったはず。引数にはバ…

【Python】win32apiを使ってデスクトップ座標の取得

デスクトップ座標をwin32apiを使ってゲットするにはまずc言語での構造体をpython上で定義してあげる必要がある。今回は構造体用にクラスを作ってそのインスタンスを使う。 # 構造体を定義 class _pointer(ctypes.Structure): _fields_ = [ ('x', ctypes.c_lo…

【Python】FFmpegでのエンコード時に出たエラー Error while opening encoder for output stream #0.0

ネットを探すとどうやらH.264でエンコードする際によく出るみたいだけど,自分のところではwmvでも発生した。原因はおそらくソースの動画サイズが 495x697で奇数だったこと。FFmpegのオプションで -s 494x696 を指定したら上手くいった。 H.264でのエラーは…

【Python】matplotlibでy2軸のグラフに凡例を表示させる方法

y2軸のグラフを書いてそれぞれの軸の凡例をまとめて表示しようとした際,普通にlengedを呼ぶだけだとうまくいかない。グラフのハンドルと表示名を引数に与えてあげる必要がある。それでもはまったのがグラフのハンドルは通常リストなのでlegendにそのまま与え…

【Python】pytesseractを使ってみた

OCRモジュールのpytesseractのPython版を使ってみた。最初はtesseractを使ってみたけど何故かPythonが動作停止に。その前にまずpythonのtesseractはC++のラッパーなのでtesseract-OCRのインストールが必要。 github.comその次にPythonで下記を実行 import te…

【Python】ベクトルから要素の抽出(条件と一致したもの,Trueのインデックス)

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]) #←条件が合う…