読者です 読者をやめる 読者になる 読者になる

<socket, Python> ソケット通信

ソケット socket 通信。 サーバ側の動作は、 IPアドレス IP address と、ポート port をソケット socket に結びつけて bind 、 通信を待ち受けるバッファを用意 listen して、待つ accept。 らしい。 ソケット入門(1) Pythonでネットワークプログラミング …

<Python, pandas> イタレータの要素を少しのぞく

イタレータiteraterの要素を確認する方法。 リスト内包表記で確認してたけど、next()が使えるらしい。 内包表記。 In [1]: import pandas as pd In [2]: df = pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]}) In [3]: df Out[3]: a b c 0 1 4 7 1 2 5 …

<Python, pandas> カラムを削除する。

列/カラムcolumnを削除する。 delだと思ったてけど、.drop()が使えるらしい。 In [1]: import pandas as pd In [2]: df = pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]}) In [3]: df Out[3]: a b c 0 1 4 7 1 2 5 8 2 3 6 9 delの場合。 In [4]: df2 …

<Python, flask> 13b

みげるっちのFlask Web Development を勉強中。 github.com 手っ取り早く、だいたいブログが出来上がった、 13bからスタートするために、いくつかメモ。 その1 git チェックアウトする。 >git clone https://github.com/migelgrinberg/flasky >cd flasky >g…

<Python> プログレスバー

プログレスバー progress bar 見つけた。(進捗がわかるやつ) github.com

<Python, Markdown, Pygments> markdown + Pygments の使い方。

ようやくわかったのでメモ。 markdownモジュールを使って、markdownをhtmlに変換。 それをsyntax highlight効かして表示するには、Pygmentsのcssを埋め込まないといけんらしい。 ipython notebookでちと試す。 In [1]: from markdown import markdown In [2]…

<Python, flask> Flask-mail

Flask-mailしてみた。 https://pythonhosted.org/flask-mail/ まずは、SMTPサーバオン。 >winpty python -m smtpd -n -c DebuggingServer localhost:1025 続いて、別ターミナルで、ipyhtonオン。 で、 In [1]: from flask import Flask In [2]: from flask.e…

<Python> SMTPサーバ

デバック用途のローカルで動くSMTPサーバは下記呪文を唱えればいいらしい。 winpty python -m smtpd -n -c DebuggingServer localhost:1025 msys2の場合、winptyをくっつける。 で、別のターミナルから、telnetでアクセスしてみる。 [1:hage@hage:UTF-8:~]> …

<Python, flask> WTForms をもうちょい研究。

WTFromsをもうちょい研究。 ちと試しにWTFormsでオブジェクト作ってメンバーでも見てみようかと思った。 In [81]: from wtforms import TextAreaField, SubmitField In [82]: class PostForm(Form): ...: body = TextAreaField('Hi') ...: submit = SubmitFi…

<Python> メタクラス

メタクラス metaclass とは、クラス class のクラスらしい。 何がうれしいのかさっぱりわからない。 とりあえず、リンク。 blog.ionelmc.ro A Primer on Python Metaclasses Python の メタプログラミング (__metaclass__, メタクラス) を理解する Pythonの…

<Python, flask> WTforms の In-line Validators

WTformsのIn-line Validatorsがちとわかったのでメモっち。 validatorさんは、 WTformsでフォームFromのクラスを作って、 フォームの各要素 Field に期待された値が入って返ってくるか?を チェック validateする役目。 あらかじめ準備してあるものは、Field…

<Python> Dive into Python3

見つけた。役に立ちそうなので、メモ。 Dive Into Python 3 日本語版 英語版。 Dive Into Python 3

<Python> lambda って後だしの関数を呼べる?

Flask-Loginのコードを見ていて、悩んだ。 /c/Anaconda/Lib/site-packages/flask_login.pyを見ると、 46行目にlambdaがある。 44 #: A proxy for the current user. If no user is logged in, this will be an 45 #: anonymous user 46 current_user = Local…

<Python> OrderedDict

辞書型 dict で順番を維持したい時は、OrderDictらしい。 8.3. collections — コンテナデータ型 — Python 3.5.1 ドキュメント ちとやってみた。 In [28]: from collections import OrderedDict まずは、ふつーのdict In [29]: d = {'one': 1, 'two': 2, 'thr…

<Flask> Flask-Login と Blinker

Flask-Loginをちら見。 Flask-Login — Flask-Login 0.3.2 documentation これは、たぶん、 ユーザ userのログイン、ログアウトを管理するセッション session を、 ちこっと便利に使うためのモジュールっぽい。 login_user()のコードを見ると、 def login_use…

<Python> getattr

組み込み関数 getattr。 オブジェクト object を第1引数、 アトリビュート attribute を第2引数にして、値をゲットする。 アトリビュートを.で指定するのと何が違ってメリットがあるのかと思っていたら、 第2引数を変数にできるのがうれしいっぽい。 例。…

<Python> class 変数

Pythonのクラス変数 class variableを少し試してみた。 まずは、下記のクラス作成。 クラス変数 a と、それを、__init__()で self.a で呼び出してみる。 In [98]: class Aaa(): ...: a = 1 ...: def __init__(self): ...: self.x = self.a ...: def cls_show…

<Python, numpy> ランダム選択

numpyさんに、リストから適当に選択するメソッドがあったのでめも。 choiceちゅうらしい。 In [1]: import numpy as np In [2]: lst = ['hage', 'hagezo', 'hageshiku', 'hagetaka', 'hageo', 'hagekichi', 'hagesaburo'] In [3]: np.random.choice(lst) Out…

<Flask> WTFroms のめも

みげるっちの本勉強中。 ちとわかって来たのでメモ。 github.com WTFormsとは、htmlのformを作ってくれるものらしい。 www.htmq.com WTForms Documentation — WTForms 3.0dev documentation Flask-WTF — Flask-WTF 0.9.5 documentation formをhtmlに書き書き…

<Python> __repr__

みげるっちのブログを読みつつ、ふーんと流していた箇所の意味が少しわかった。 __repr__は、オブジェクトを示す番号を返す。 で、クラス class中で、__repr__をオーバーライトしてしまえば、 自分の任意の値を返すようにできる、、、わかりやすくなる。 っ…

<Flask> Flask-SQLAlchemy

ちとFlask-SQLAlchemyを試してみた。 データベースを直接呼び出すのでなく、それを包むオブジェクト wrapper object経由で操作するものらしい。 まずはインポート import。 接続するデータベースは、app.config['SQLALCHEMY_DATABASE_URI']で指定しないとい…

<Flask> Flask-Script

Flaskでセットアップ、デバック等々が楽になるように、 Flask-Scriptという拡張モジュール extentioin があるのを知った。 試してみる。 もとのapp.pyスクリプトをコピーして、 script.pyという名前にして#追加の行を追加。 from flask import Flask from fl…

<Python> 階層構造での変数

階層構造 hierarchy configuration での変数 variableの例。 使うかもしれないので、メモ。 辞書 dict をdictする場合。 In [45]: aaa = {'a':1, 'b':2} In [46]: bbb = {'a':3, 'b':4} In [47]: ccc = {'aaa':aaa, 'bbb':bbb} In [48]: ccc['aaa'] Out[48]:…

<Python> md5 hash を作る。(暗号化)

md5 ハッシュ hashを生成する。 In [201]: import hashlib In [212]: hashlib.md5('john@example'.encode('utf-8')).hexdigest() Out[212]: '2e7a11032096c21c8e9d9704cef65fb8' .digest()にすると、 In [213]: hashlib.md5('john@example'.encode('utf-8'))…

<Python, flask> デコっちの応用、、、

みげるっちの講義のFlask-Loginの使われ方をみて、いまいちよくわからんとこがあった。 blog.miguelgrinberg.com @lm.user_loader def load_user(id): return User.query.get(int(id)) load_user()を他で呼んでいるところもない。 ちとflask_loginのソースを…

<Python> でこでこでこでこでこれーた。

デコレータ decorator。 難しい。 元の関数 function になんらかの変更をして、元の関数と置き換えるものっぽい。 ちこっと試してみた。 まずはデコレータ定義。 In [144]: def deco(func): ...: def wrapper(): ...: return func() + 100 ...: return wrapp…

<Flask, Web> Session

セッション sessionってなんじゃろー、と思った。 itpro.nikkeibp.co.jp なるほど、 1人のユーザがWebにアクセスする時の一連の処理の始めから終わりまでの期間。 ふーん、、、 個々のWebアクセスリクエストは、それぞれ単発であり、それを繋ぐ紐は、Webサ…

<Python, flask> app.config

app.config 正しくは、flask.config.Configについてメモ。 こいつは、Flaskが呼ばれた時に使う変数 variable 群と、ちょっぴりユーティリティーらしい。 In [23]: import flask In [26]: app = flask.Flask(__name__) In [27]: type(app.config) Out[27]: fl…

<Python> 空の判定。

空 から vacancy null のものの判定。 次の関数を用意。 In [1]: def j(x): ...: if x: ...: print('"if" catches it') ...: if not x: ...: print('"if not" catches it') ...: で、いくつかのタイプ typeで判定。 bool In [2]: x = True In [3]: type(x) O…

<Python> 文字のリストの作り方

確かに ['a', 'b', 'c'] って書くよりこれが楽っぽい。 'a b c'.split(' ')

<Python> ptpython

ptpythonというものをちょっと試してみた。 github.com msysでやるには、winpty ptpythonにしないとだめ。 でも、なんか色が、、、 Windows Consoleでやったら、きれいに動いた。 なかなかいいねー。 次のipythonに取り込まれるのかな? 期待。 ちなみに、Vi…

<Python> import

importって、ある特定ディレクトリの下のファイルを読み込んでいるかと思ってた。 そうじゃなくて(そうじゃないよー byミトメン) オブジェクトを読み込んでるっぽい。 ディレクトリaaaにファイル__init__.pyがあった場合。 [0:hage:~]>ls aaa/ [1:hage:~…

<Python> staticmethod, classmethod, instancemthod

スタティックメソッド staticmethod クラスメソッド classmethod インスタンスメソッド instancemethod と3種類あるらしい。 何が違って、何がうれしいのか、、、難い、、 これを見つけた。 staticmethodはなんとなくわかった。 これは単純にファンクション…

<Python> propertyとは、、、

16/4/8 ちと書き直し プロパティーpropertyとは、どうも次のようなものらしい。 アトリビュート attributeと、プロパティー propertyは同じもの。 ただ、プロパティーは、propertyデコレータ使って、自分でコントロールできるものが付加できる、、がナイスら…

<Python, Json> Jsonを見やすくする。

PythonでJsonを見やすくする。 [1749:hage:~]>curl -q 'http://search.twitter.com/search.json?q=json&rpp=5&include_entities=true' | python -mjson.tool % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Lef…

<Linux, pip> locale.Error な時。

pipで適当なパッケージをインストールしようとしたらエラーが出た。 [5:hage:~]>pip install powerline-status Traceback (most recent call last): File "/home/hage/my_python/myenv/bin/pip", line 6, in <module> sys.exit(pip.main()) File "/home/hage/my_pyth</module>…

<Python, pandas, SQlite> pandasでsqlite3する。

pandasでsqlite3を使う。 1.. DB作成。 In [1]: import sqlite3 In [2]: con = sqlite3.connect(':memory:') In [4]: con.execute(''' ...: create table {table} ( ...: {id} integer primary key autoincrement, ...: {name} text not null, ...: {brightn…

<Python, SQlite> sqlite3 を使う。

データベースdatabaseのsqlite3を使う。 1.. まずは、モジュール呼び出し。 :memory:とすると、メモリ上にデータベースを作成。 In [1]: import sqlite3 In [2]: con = sqlite3.connect(':memory:') 2.. 初期化。 テーブルtableを作る。 データベースの各要…

<Python, conda> ディレクトリを変えて環境を作成する。

自分のPythonをディレクトリdirectoryを変えて環境environmentを作成する方法。 Step1 最初に、conda configをやって、.condarcを作る。 >conda config --add envs_dirs /home/hage/my_envs >more ~/.condarc envs_dirs: - /home/hage/my_envs これで、conda…

<Python> sys.pathの設定

モジュールの入っている先を示すsys.pathの設定。 シェルShell上からだと、環境変数PYTHONPATHにセット。 [1]>python -c 'import sys; print(sys.path)' ['', '/home/hage/site-packages'] [2]>export PYTHONPATH="home/hige:$PYTHONPATH" [3]>python -c 'im…

<Flask> GETで2つ以上の値を受け取る方法。

Flaskさんで、htmlのフォームformのGETメソッドmethodで、2つ以上の値を受け取る方法。 request.args.getlist() これで、リストlistで値が返ってくる。ナイス。 例。 from flask import Flask, render_template, request import subprocess app = Flask(__n…

<Python> subprocess.check_outputは古いらしい。。。

pythonさんから、うにっくすこまんどunix commandを呼び出すモジュールsubprocess.check_outputはもう古いらしい。 マニュアル 17.5. subprocess — サブプロセス管理 — Python 3.5.1 ドキュメント 今は、subprocess.Popen()らしい。 エラー処理とあわせた記…

<Flask, Python> 神社で文字列化されないためには、、

Flaskから、値を、render_template()で値渡す場合、、、 そのまま渡すと、値は文字列として自動で解釈される。 例えば、app.py側が、 hage='<div>truppage</div>' return render_template("hoge,html', hage=hage) で、神社jinjaのtemplate側が、 {{ hage }} だと、結果…

<Beautiful Soup> classを検索する時、

ちとはまったので、メモ。 classの値を使って検索する時は、class_と指定しないといけないっぽい。 In [26]: import urllib In [27]: from bs4 import BeautifulSoup In [28]: url = urllib.request.urlopen('http://nekoyukimmm.hatenablog.com/entry/2016/…

<Python> マルチスレッド

ちょっとだけ処理を早くしたいので、マルチスレッドmultithreadをやってみた。 In [36]: import threading In [37]: def bbb(x): ...: for i in range(1,1000): ...: i = i + x ...: print(i) ...: In [38]: t = threading.Thread(target=bbb(2)) 1001 とや…

<Python> リストにリストを加える

リストlistにリストlistを加える。 .append()だとだめらしい。 やってみると、、、 In [15]: lst = list('abcde') In [16]: lst Out[16]: ['a', 'b', 'c', 'd', 'e'] In [17]: lst2 = list('fghijk') In [18]: lst2 Out[18]: ['f', 'g', 'h', 'i', 'j', 'k']…

<Python> 例外処理の値を取得する

例外処理exceptionの値valueを取得するget。 try: do_something() except BaseException as e: print('Error {} happened, quit'.format(e)) sys.exit() 上記の記述で、オブジェクトeにエラーerrorの値が入る。 Stackoverflow stackoverflow.com エラー一覧 …

<Python, pandas> 対象の値の要素を選択 (grep)

データフレームDataFrame中で、見つけたい文字Stringがある場合。 .isin()を使う。 検索する値は、リストlistで渡す。 ちなみに、正規表現regexpは効かないっぽい。 値が完全に一致するものを見つけにいってる。 In [150]: df Out[150]: a b c 0 a ab x 1 b …

<Python, pandas> booleanのリストを使った行列選択

booleanのlistか、Seriesを使いデータフレームDataFrameの行列選択する。 データフレームから、Noneの部分を.applymapを使って判定。 In [129]: df Out[129]: a b 0 1 None 1 2 NaN 2 3 5 3 NaN 8 4 4 a 5 5 9 6 NaN 8 7 6 None In [130]: a = df.applymap(l…

<Python, Vim> 構文チェッカー

Pythonの構文チェッカーを入れた。 こいつ。 github.com で、.vimrcに入れるお呪いは、 let g:syntastic_python_checkers = ["flake8"] let g:syntastic_flake8_args = '--ignore="E501"' 構文チェッカーは、flake8を指定。 E501のエラー(80行を超えたら…