Python

<Anaconda> Python 3.7を入れる。

最近、conda update anacondaがだめだめで動かない。 アップデートできないと、なんかつまらないので、久々にAnacondaを入れ直すことにした。 前回同様、 今あるAnacondaがあるディレクトリC:\Anaconda3を念のためバックアップコピーして、 Anacondaをアンイ…

<selenium, Python> headless やってみた。

2021/01/09 久々に、seleniumを動かしてみた。下記のメモはまだ有効だったじょ。 Chromedriverは、87.0.4280.88だった。 ダウンロードしたのは、chromedriver_win32.zip。 2018/07/06 headlessやってみた。 chromedriverは新しいのがいる。2.29ではだめだっ…

<msys2, Pyhton> msys2にpipを入れる。

msys2にpipを入れる。 >pacman -S pyhton3-pip kanomiya.hatenablog.com

<powerline, msys2> msys2でpowerlineをやる。

ずっとやってみたかった、mys2でpowerlineをやる。 やってみた。 ググると、pip install powerline-statusでインストールすればいいらしい。 インストール後、さっそく起動。 powerline-deamon -qでゴー。 エラーがでた。。。 うーんと思って調査したら、ど…

<pyinstaller, Python, WSH> Pythonスクリプトから実行ファイル(exe)を作る。

Pythonスクリプトから実行ファイルexeを作る、変換する。 pyinstallerちゅうのでできるらしい。 試してみた。 インストールは、pipさんで。condaさんにはなかった。 例のCalculatorをwin32comで、制御するスクリプトを変換。 スクリプト。 #!/usr/bin/env py…

<WSH, win32com, Python> WSHとwin32comの関係

WSH(Windows Script Host)と、win32comを眺めてみた。 win32comはどうやら、おそらく、WSHとほぼ同じ。 WScriptでCalcを起動して、キーを送るスクリプト。 https://msdn.microsoft.com/ja-jp/library/cc364423.aspx set WshShell = WScript.CreateObject("WS…

<OCR, tesseract, python> 光学的文字認識をやってみた。

諸事情により、画像imageから、テキストを抽出をやってみた。 光学的文字認識Optical Character Recognitionというらしい。 自分の土俵でできるか、、だったが、幸いにmsys2版があった。ラッキー。 で、必要なソフトのインストールからスタート。 このWikiに…

<Python> 誰にも参照されない変数

誰にも参照されない変数...は_らしい。 In [1]: for _ in range(10): ...: print('hage') ...: hage hage hage hage hage hage hage hage hage hage ja.stackoverflow.com

<pandas, Python> 条件にあった行を削除する。

条件conditionにあった行Rowを削除dropする。 まずは、お見本データフレームDataFrame作成。 In [54]: data=''' ...: 1 2 3 4 5 ...: a b c d e ...: f g h i j ...: k l m n o ...: ''' In [55]: df = pd.read_table(io.StringIO(data), sep=' ') In [56]: …

<Python> アルファベットのリストを作る。

chr()にアスキーコードを入れればOK! 逆は、ord()だよーん。 In [61]: [chr(i) for i in range(65,65+26)] Out[61]: ['A', 'B', 'C', : 'X', 'Y', 'Z'] In [62]: a = [chr(i) for i in range(65,65+26)] In [63]: [ord(i) for i in a] Out[63]: [65, 66, …

<pandas, Python> ふたつのカラムの値でソートする。

2つ、ふたつのカラムcolumnの値でソートsortする。 In [58]: df = pd.DataFrame({'a':[2,2,1,1,1],'b':[2,1,3,1,2],'c':['a','b','c','d','e']}) In [59]: df Out[59]: a b c 0 2 2 a 1 2 1 b 2 1 3 c 3 1 1 d 4 1 2 e In [60]: df.sort_values(['a','b'], …

<pandas, Python> カラムの値を比較して、同じ値の行を抽出する。

カラムcolumnの値を比較して、同じ値の行rowを抽出する。 対象のカラムを選択して、apply()をして、その中で、lambda関数で文字列比較処理をすればいい。 In [7]: df = pd.DataFrame({'a':[1,2,3,4,5],'b':[1,4,6,8,10],'c':[5,7,8,9,10]}) In [8]: df Out[8…

<Python> 関数名と行番号を取得する。

デバックdebugしてる時に、関数名function nameと行番号line numberを表示したくなったので、ググった。 sys._getfram()ちゅうやつでできるらしい。例。 In [92]: import sys In [93]: def hage(): ...: print(sys._getframe().f_code.co_name) ...: print(s…

<logging, Python> ipythonでのlogging

ちと、threadingを使っていたら、どのスレッドが何しているのか?知りたくなり、ロギングloggingしてみた。 したら、ipythonでは、ちと一工夫必要だったのでメモっち。 簡単にいうと、下記をスクリプトに盛り込む。 import logging logging.disable(logging.…

<tempfile, Python> ファイルからの読み出しはseek(0)がいる。

テンプファイルtempfileを使った時にちとはまったので、メモ。 tempfileを使って、一時的なファイルを作成し、その内容を読みだす場合、seek(0)しないといけん。 なんにもしないと、、 In [1]: import tempfile In [6]: with tempfile.TemporaryFile(prefix=…

<datetime, Python> 文字列をパースしてdatetimeオブジェクト作って、エポックタイムにする。

過去記事の書き換え&再投稿。 文字列stringをパースparseしてdatetimeオブジェクト作って、エポックタイムepoc timeにする。 In [1]: from datetime import datetime as dt In [2]: dt.strptime('07-25-18 14:25', '%m-%d-%y %H:%M') Out[2]: datetime.date…

<selenium, Python> click()でうまく動かない時は、、、

seleniumを使って、要素クリックでうまく動かない時は、直接そこにリンクされているJavascriptを実行させればいいらしい。。 stackoverflow.com qiita.com

<pip, Python> SSLerrorしても、無理やりインストールする。

Proxy環境化で、SSL Errorがでて、pip installがこけた時でも、無理やりインストールする。 > pip install pyvirtualdisplay Collecting pyvirtualdisplay Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connectio…

<Python> OSをチェックする。

土台のOSをチェックする。 In [5]: import platform In [6]: platform.system() Out[6]: 'Windows' In [7]: os.name Out[7]: 'nt' マニュアル。 16.14. platform — 実行中プラットフォームの固有情報を参照する — Python 3.6.5 ドキュメント

<conda, Python> 環境の名前を変える。

名前を変えたい。 一旦、環境を新しい名前でコピーしてから、古いのを削除するらしい。 >conda create -n NEW --clone OLD >conda remove -n OLD --all やってみた。 >conda env list # conda environments: # hoge /home/my_python/hoge hage /home/my_pyth…

<conda, Python> 自分のenvsを追加する。

自分のや、他の人が作った、envsを追加して、conda env listで表示する。 .condarcに次を下記のように書き込む。 >more ~/.condarc envs_dirs: - ~/my-envs - /opt/anaconda/envs マニュアル。 https://conda.io/docs/user-guide/configuration/use-condarc.…

<Python, selenium> マウスホバーのやり方

セレニウムseleniumでマウスホバーmouse hoverする方法。 まずは、selenium起動して、東京アメッシュに行ってみる。 In [1]: from selenium import webdriver In [2]: from selenium.webdriver.chrome.options import Options In [3]: options = Options() I…

<Python> ファイル名のリスト + 時刻でソート(その2)

検索したら過去に同じことをやってたが、せっかくなので、メモっておく。 ファイル名のリストlistを時刻timeでソートsortする。 In [4]: ls ドライブ C のボリューム ラベルは Windows8_OS です ボリューム シリアル番号は 1679-D852 です C:\msys64\home\Ne…

<Python> 相対パス + ipythonでエラー

下記のようなファイル構成をとっていて、、 % tree hage hage ├── __init__.py └── main.py ├── hige │ ├── __init__.py │ └── core.py 1 directory, 4 files で、main.pyで、 from hige.core import * として、インポートする。 この場合は、ipythonで、run…

<Python> listから空のものを除く

listから、空つまり、"のものを除く。 リスト内包表記を使えば一発。 リスト作成。 In [1]: aaa = ''' ...: aaa ...: bbb ...: ccc ...: ''' In [2]: aaa.split('\n') Out[2]: ['', 'aaa', 'bbb', 'ccc', ''] In [3]: lst = aaa.split('\n') In [4]: lst Out…

<Anaconda> アップデートしたら、、、

nekoyukimmm.hatenablog.com この後、 アナコンダAnacondaさんをアップデートしてみた。 [1]> conda update anaconda Fetching package metadata ............. Solving package specifications: . Package plan for installation in environment C:\Anacond…

<virtualenv, Python> virtualenvをして、setuptoolsを試す。

Anacondaで、virtualenvをして、setuptoolsをためしてみた。 まずは、virtualenv。 インストールしんといけん。デフォルトでははいっちょらん。 [1]> conda install virtualenv で、virtualenv。 [2]> virtualenv hello Using base prefix 'C:\\Anaconda3' N…

<Anaconda> Python 3.6を入れる。

Pythonが3.6になっている。 前に入れたAnacondaは、3.5.1。その後、アップデートかけて、3.5.4。 特段3.6ですることはないが、3.6にしたい。 condaで3.6を入れてみたが、デフォルトを3.6にすることができないっぽい。 なので、Anacondaをインストールし直す…

<Anaconda, conda, python> Anacondaでpipをちゃんと動かす。

Windowsにインストールした、Anacondaさん上で、 condaで環境を変更した時に、pipをちゃんと動かす、、 つまり、source activateした環境を認識させるには、、 例、下記の環境で、、 >conda env list # conda environments: # py27 C:\Anaconda3\envs\py27 p…

<Python> リスト中の重複した要素を除く、、

リストlist中の重複した要素duplicated elementを除く、、 setを使うそうです。 例、、 In [1]: l = ['e', 'd', 'c', 'a', 'b', 'e', 'd'] In [2]: set(l) Out[2]: {'a', 'b', 'c', 'd', 'e'} In [3]: list(set(l)) Out[3]: ['c', 'a', 'b', 'd', 'e'] In [4…