やったもん勝ち

主にプログラミングのこと。生産性向上の某とかも。

python

AWS lambdaのpythonで並列実行する方法

普通の並列実行は、こちらを参考にして実装できました。 qiita.com lambdaで実行するとなると若干修正しました。 import time from multiprocessing import Process, Pipe hoge_list = [1, 2, 3, 4] def wait_and_print(i, *args, **kwargs): print(f'start …

よく使うpython3のスニペット集(随時更新)

pythonスニペット unixtime⇔datetimeの変換 import datetime # datetimeのnowをつくる now = datetime.datetime.now() # => datetime.datetime(2018, 6, 20, 12, 37, 50, 642687) # datetiemをunixtimeに変換 unixtime = int(now.strftime('%s')) # => 15294…

AWS Lambdaでdatetimeを使うときにコンテナが再利用される罠

lambdaのpythonでdatetimeを使おうとしてコードを書いて、いざ動かしてみると、どうもちょっとおかしい。 明らかにおかしいというよりは時折おかしくなることがある。 これが逆に厄介でした。 原因は、lambdaの実行コンテナのコンテキストは再利用されること…

pythonのaws-sdkのboto3を使ってライブラリのコードをちゃんと読んでみる①

boto3とは? pythonのaws-sdkです。 他の言語のaws-sdkは大体aws-sdkみたいな名前で公開されていることが多いのですが、なぜかpythonだけboto3っていう名前です。 boto3.amazonaws.com 個人的にはこのドキュメントすごい読みやすくて好きなライブラリです。 …

AWSのEC2でAirflow実行環境を構築してチュートリアルを動かしてみる

今、airflowが熱いらしいです。 そこら編の解説は他の有用や記事に任せて、とりあえずチュートリアル動かしてみた備忘録を残しておきます。 AWS環境 Amazon Linux 2 セキュリティグループは sshの22番 ウェブコンソールの8080番 を開けておきます 大体チュー…

python36で別のホストのmysqlに接続する。

環境 接続元 AWS EC2 Amazon Linux AMI release 2017.09 python3.6 pip pymysql グローバルIP: aaa.aaa.aaa.aaa 接続先 AWS EC2 Amazon Linux AMI release 2017.09 MySQL: 5.6.38 グローバルIP: xxx.xxx.xxx.xxx 準備 MySQLサーバ 事前にDBとテーブルを作っ…

40秒で支度しな!AWSのEC2にpython36で最速でflask実行環境を作成する

AWSのEC2、amazon linuxです。 $ sudo yum install -y python36 $ sudo pip-3.6 install flask $ vi ~/hello.py # 以下の内容で作成作成 from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello World!' if __name__ ==…

pythonのboto3でのエラーハンドリング

問題 pythonのboto3で以下のようなコードを書いていて、 try: hoge() except: print("error") flake8にdo not use bare except'と怒られた。 pythonのエラーの書き方をちゃんと調べてみると、エラーの種類をexceptで指定しておかないと、エラーメッセージを…

python3でstrからdictに変換する

import ast str = "{'name':'Taro', 'hieght':170}" type(str) => <class 'str'> dict = ast.literal_eval(str) type(dict) => <class 'dict'> 他の記事でast.literal_dict(str) となっていたのですが、 AttributeError: module 'ast' has no attribute 'literal_dict' とエラーになって</class></class>…

python3のnumpyのarrayのスライスで、値渡しをしたいとき

arrayのスライスについて。 arrayは参照渡しらしいです。 arr = np.arange(0,11) print(arr[1:4]) array([1,2,3]) arr = np.arange(0,11) arr[1:4] = 100 print(arr) array([0,100,100,100,4,5,6,7,8,9,10]) となります。 arr = np.arange(0,11) arr2 = arr[…

python3のnumpyでできることまとめ①

こんにちは、初投稿です。 お目汚しして申しわけありません。 という保険です。 pythonを学び始めました。 numpyについてちょっとまとめます。 numpyとは、数値計算のためのライブラリですね。 このデータをこういう形に直したいから、、こうこうこういう計…