Python

<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

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

headlessやってみた。 chromedriverは新しいのがいる。2.29ではだめだった。 こっから、今時点の最新2.40のWin32をゲット。 chromedriver.chromium.org とりあえず、C:\msys64\usr\local\binに置く。で確認。 >/usr/local/bin/chromedriver --version Chrome…

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

<Windows, Python, win32com> COMサーバの登録

win32comを使って、Windowsのアプリケーションを操作する場合、 そもそも、対象となるアプリケーションが、レジストリregistryに登録されてないと呼び出せない、、ことを知る。 win32comから呼び出し可能か? は、makepy.pyで調べれる。 ここにリストされて…

<selenium> Windowサイズを変更

seleniumでウインドサイズwindow sizeを変更する技。 In [1]: from selenium import webdriver In [9]: from selenium.webdriver.chrome.options import Options In [10]: options = Options() In [11]: options.add_argument('--window-size=100,100') In […

<Python, PyAutoGui, Selenium> 認証ウインドを乗り越える、、

ブラウザBrowserが出す認証ウインドAuthentication Requiredを通過する技。 ググるとこのウインドは、ブラウザが出すもので、Seleniumで制御できないっぽい。 ということで、PyAutoGuiで対応したっす。 ブラウザを画面いっぱいにして、 真ん中に現れる認証ウ…

<PyAutoGUI, Python> オートメーション

オートメーションautomation、、つまり、マウス、キーボードの自動操作。 PyAutoGUIでできる。 インストールした。 >pip install python3-xlib >pip install pyautogui マニュアル。 Welcome to PyAutoGUI’s documentation! — PyAutoGUI 1.0.0 documentation…

<Python, BeautifulSoup> HTML属性をゲット

BeautifulSoupで、HTML属性attributeをげっちゅうする技。 こんなhtmlテキストがあったとして、、 In [1]: from bs4 import BeautifulSoup In [2]: html = ''' ...: <d> ...: <name>Hage</name> ...: <qty>10</qty> ...: </d> ...: <d> ...: <name>Hige</name> ...: <qty>20</qty> ...: </d> ...: <d> ...: <name>Hoge</name> ...: <qty>12</qty> ...: </d>

<Python, flask> test_client()

Flaskさんをやっていて、app.app_context()をやるがいいが、 実際の動作requestに対する応答を確認するいい方法がないかと思っていたら、ありました。 さすがっす。 app.test_client()らしいっす。 このまえ、かりかり作ったスクリプト(下)でちと実験。 gi…

<Python, flask> Flaskr

どうも、FlaskのドキュメントdocumentのページのFlaskrとGithubの中身が異なるっぽい。 Github版は、Blueprint等々使ってて、初心者向けじゃなくなってる。。。 ち。。。 昔、mitsuhikoさんが作ったものは下記にあるっぽい。 https://github.com/pallets/fla…

<Python, flask> CORS対応。

クロスドメイン通信制約。 セキュリティの問題上、そのHTMLファイルが置かれているドメインのサーバとしか通信できないという制約。 qiita.com で、jQuery ajaxでjsonさんデータをGETするスクリプトを作ったが動かなかった。 ので、Flask-CORSを追加した。 s…