Python

証明書の登録方法

随時追加予定 事前準備 追加したい証明書を取得する どこかに配置する(ex. {JAVA_HOME}/lib/security) ※1 ※1 導入するところ付近なら何追加したのか直感的に分かりやすい。 もしくはpemなど管理しているフォルダとか。 Java 管理者権限でコマンドプロンプト…

pythonを指定したバージョンにアップグレードしたい

実施したいこと ローカルのpythonを3.8からアップグレードしたい。 その際、最新版ではなく、3.9をインストールしたい。 (他のパッケージとの兼ね合いのため) 対応方法 インストールできるpythonの一覧表示(対象の存在確認) apt list | grep python3.9 Pytho…

P129 DBのスキーママイグレーションとデータマイグレーションを分ける

DjangoのORMはマイグレーションの機能も提供している。 Django ORMのモデルに定義したフィールドの移動は、実際にはフィールドの削除と新規追加として扱われる。 このような変更に対するマイグレーションファイルは、1つのマイグレーションでカラムの追加と…

eclipseでiPythonを使いたい

コンソールより、PyDevコンソールを選択すればよい。 すると利用するPythonを選べと言われるので、Console for currently active editorを選択する。 すると現在eclipseに設定しているPythonのインタープリターを選択する様に問われるので、お好きなインター…

eclipseでPythonの仮想環境を使いたい

設定方法 1.事前にcondaコマンドやvenvなどで仮想環境を作成しておく(一つ目の肝) 2.[ウインドウ] - [設定] - [PyDev] - [インタープリター] - [Python インタープリター]を選択 3.Browse for python/pypy exeを選択 このボタン押下すると急にディレク…

*演算子 / **演算子

日本語ドキュメント上は* 演算子(アスタリスク演算子)、** オペレータ(ダブルアスタリスクオペレータ)と表記揺れは存在したが、英語版ドキュメントには *-operator / **-operator と記載されていた。 docs.python.org 当演算子を用いれば、アンパックという…

P14 処理内容を想像できるより狭い英単語

●getの置き換え候補 英単語 想像できる意味 load ファイルなどの読み込みをする fetch/retrieve 外部(APIなど)からデータを取得する search 何らかの検索処理(IDでの取得でなく、条件での取得)が発生する calc 副作用(外部へのアクセスや読み込み、I/O)なし…

pythonを使ったJSONのpretty化

python -c ”実行コード”を用いればよい >|bash| echo '{"A":100, "B":{"C":10,"D":20}}' | python -c "import sys,json;print(json.dumps(json.loads(sys.stdin.read()), indent=2))" |

とりあえずなダミーメールサーバーを立てる方法とカスタマイズ

Pythonには組込みでメールサーバー機能が実装(SMTPServer)されており、デバックなどの用途のためにそれを継承したクラスとしてDebuggingServerというクラスが実装されている。当クラスは、ワンライナー呼び出しができ、以下の様な方法で簡単に呼び出す事がで…

P474 マジックコマンド

IPythonでロードしているパッケージの情報や、宣言している変数の値などを確認できるための便利コマンド Jupyter Notebookでも利用可能例) %who:定義している変数名の一覧 %whos:定義している変数名と型と値の一覧 %save:セッション履歴のファイルへの保…

P123 Pythonからメールを送信する

・emailモジュールとsmtplibモジュールを利用 ・SMTPサーバとしてGmailのサーバーを使うのがお手軽であるが、認証が必要で、さらにTLS/SSL利用が必須なのでSMTPの代わりにSMTP_SSLを利用する必要が有 ・OP25Bに対応するためにはP323の様な実装が必要Pythonク…

P122 Voluptuous

Pythonの基本的なデータ型を定義できるライブラリ Schemaオブジェクトでスキーマを定義し、関数として呼び出すことで引数のオブジェクトのバリデーションを実施可能Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-作者: 加藤耕…

P117 @retryデコレーター

リトライ処理を簡潔に書けるライブラリ # stop_max_attempt_number:最大リトライ回数 # wait_exponential_multiplier:指数回数的(1,2,4,8…)なwaitを仕掛ける事ができ、初回のウェイトをミリ秒単位で指定 @retry(stop_max_attempt_number=3, wait_exponennti…

P72 パッケージ一覧の保存

pip freezeコマンドを使用すれば、現在の仮想環境で使用しているパッケージの情報をファイルに書き出せる。 ファイル名は慣例として、requirements.txtがよく使われる。requirements.txtファイルをソースコードと合わせてバージョン管理すればよい。pip inst…

P62 Python2系のEOLについて

2020年でサポート終了[PEP373] Ptyhon2.8はリリースしない[PEP404]ソフトウェアデザイン 2017年 06 月号 [雑誌]出版社/メーカー: 技術評論社発売日: 2017/05/18メディア: 雑誌この商品を含むブログを見る入門 Python 3作者: Bill Lubanovic,斎藤康毅,長尾高…

P197 正規表現

import re pattern = 'ab' data = 'abc' result = re.match(pattern, data) なお、match関数は先頭から一致する文字列を探すメソッドである。 与えた文字列の最初にヒットする個所を取得する場合は、searchメソッドを、マッチする全てをリストで返す場合はfi…

P193 書式設定

古いスタイルでは、string % dataという形式で指定が行えた。 '%d %f %s' % (n, f, s) #10進数、10進数(float)、文字列で表示Python3を使うのであれば、新しいスタイルのプレースホルダーとformatメソッドの組み合わせの指定を使う方がよい。 '{} {} {}' % (…

P126 デコレータ

デコレータ元の関数を予め宣言しておき、デコレートしたい関数に対して@関数名とアノテーションの様に付け加えるだけでデコレートできる。 Javaでは到底こんなことはできない(groovyならできそうだが)実装方法で、この機能は非常に使い勝手が良さそう。 また…

P125 ジェネレータ

range関数の様に呼び出された前回の状態を覚えているオブジェクトのこと入門 Python 3作者: Bill Lubanovic,斎藤康毅,長尾高弘出版社/メーカー: オライリージャパン発売日: 2015/12/01メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る

P118 docstring

関数定義の後に文字列を宣言すれば、コメント記号(#)無しで注釈を記述できる。 def hoge1(): 'hogeを返す' return 'hoge' なお、長文を記述したい場合は、'''を使えばよい。入門 Python 3作者: Bill Lubanovic,斎藤康毅,長尾高弘出版社/メーカー: オライリー…

P116 可変引数

Javaでいう可変引数に近い機能として、*によるタプル化と、**による辞書化といく機能がある。 def tupple1(*args): #位置引数のタプル化 tupple1(3, 2, 1, 'hoge') #実行例 def dict1(**args):キーワード引数のタプル化 dict1(beg='ges', sun='oto', sen='sp…

P115 デフォルト引数の罠

Pythonでは関数を宣言する際、デフォルト値を設定する事ができる。 このデフォルト引数は、呼び出されたタイミングで都度評価されるのではなく、実行時に最初に一度評価されるだけである。 そのため、ミュータブルな値を用いてしまっていた場合、二度目の実…

P112 none

Javaでいうnullである。入門 Python 3作者: Bill Lubanovic,斎藤康毅,長尾高弘出版社/メーカー: オライリージャパン発売日: 2015/12/01メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る

P104 内包表記

データ構造をコンパクトに作成するための形式 本書には、リスト内包表記、辞書内包表記、集合内包表記、ジェネレータ内包表記が紹介されている。入門 Python 3作者: Bill Lubanovic,斎藤康毅,長尾高弘出版社/メーカー: オライリージャパン発売日: 2015/12/01…

P98 for文

・Javaの様な拡張for文も当然OK ・辞書を回す際、そのまま回すとキー、valuesメソッドを使うと値、itemsメソッドを使うと両方が取れる。 ・breakによる中止もOK、elseハンドラも有 ・continueで次のループという点もJavaと同じ ・Javaの通常のfor文と同じ様…

P96 while文

・文法スタイルはif文と同様 ・break文で抜けれる ・break文を使わずにwhile文を抜けた場合、else文を記述しておけば、ハンドラとして動かす事ができる 入門 Python 3 作者: Bill Lubanovic,斎藤康毅,長尾高弘 出版社/メーカー: オライリージャパン 発売日: …

P91 if文

・if,elif,elseがキーワード ・終わらせるためのキーワード(ex.fi)みたいなのはない ・if color == "red": と条件文の後にコロンが必要 ・比較演算子はjavaと同じで、加えてinがある(groovyと一緒) ・論理演算子は、and, or, notとjavaなどの様な短く見やす…

P53 リストとタプルと辞書

リストはミュータブルで、タプルはイミュータブルである。 その代わり、タプルはメモリ使用量が少なく、辞書のキーとしても使える。 [リストの生成] empty_list1=[] empty_list2=list()[タプルの生成] empty_tupple=()辞書は、JavaでいうHashMap、awkとかで…

P42 []による文字の抽出・スライス

az = 'abcdefghijklmnopqrstuvwxyz' #2.3.6 文字の抽出 az[0] #a az[-1] #z az[26] #IndexError #2.3.7 スライス az[:] #abcdefghijklmnopqrstuvwxyz az[20:] #uvwxyz az[12:15] #mno az[-3:] #xyz az[18:-3] #stuvw az[::7] #ahov(先頭から最後まで7字毎に…

P41 *による繰り返し

"hoge" * 2でhogehogeと同じ文字列を繰り返す事ができる。入門 Python 3作者: Bill Lubanovic,斎藤康毅,長尾高弘出版社/メーカー: オライリージャパン発売日: 2015/12/01メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る