Python– category –
-
カレントディレクトリのファイル名をすべてUUIDにするPythonスクリプトのワンライナ
タイトルのまま。破壊的なので念のためバックアップとってからやること推奨。Pythonで動かす。 【コード】 Python 3.9で動作確認済み。以下をターミナルで実行すると、カレントディレクトリのファイルがすべてUUIDにリネームされる。拡張子はそのまま。サブディレクトリには手をつけない。 python -c 'import os, uuid; [os.rename(f, str(uu... -
Python3: Ctrl-cで割り込み処理
怪奇!ChatGPTに聞いたことのメモ帳と化したマイブログ! というのはいいとして、PythonスクリプトでCtrl-Cで割り込んだときに特定の処理をさせたいスニペット。 【環境】 Python 3.9.16 macOS 12.6.3 【コード】 マジでChatGPTが出力したまんまのため若干気が引けつつ……。 import signal import sys import time def keyboard_interrupt_han... -
Pythonで深いネストのlistやDictの値を調べてDecimalがあればint or floatに変換する
DynamoDB使ってるとちょくちょくあるシチュエーションかなと思う。DynamoDBはDecimalだけどjsonになおす時にDecimalあると使えないし。 こういうロジック考えると地味に頭使うと思うんだけど、ChatGPTが1秒で考えてくれました。なんか軽く死にたい。しかも結局使わなかった😂 【環境】 Python 3.9 【ロジック】 以下、int, floatは何もせず、... -
motoでDynamoDBのMockを作成する
最初に作る時いつもどうやるんだっけ?となるのでメモ。 motoを使ってDynamoDBのmock作る時のテンプレ。 【環境】 Python 3.9.16 boto3==1.18.1 pytest==6.2.4 moto==4.0.5 macOS 12.6.3 【ディレクトリ構造】 func/app.py をテストする感じで。 . ├── func │ ├── app.py ├── tests │ ├── __init__.py │ └── unit │ ├── __init__.py │ ├── co... -
GKE + Flask で REST API
k8sもDockerもちゃんとやらないままに、k8s上でちょっとしたAPIサーバをたてることになった。なので、手始めにGKE上にAPIサーバを構築することにした。FirebaseでしかGCP使っていなかったので、辿々しくコンソール画面をいじっている……。 フレームワークはなんでもよかったが、Pythonを使い慣れているので、Flask + nginx を行くことにする。... -
SendGridのAPIでPythonライブラリ(6.0.5)を使って添付ファイルを送信する
SendGridのAPIは、Pythonで使えるものがGitHubで公開されていて、便利に使える。まぁだいたいのことはGitHubのページを見るのが一番良いのだが、自分でさっと使う用に、メモ書きしておく。 【環境】 環境は以下。 Python 3.7.3sendgrid-python 6.0.5 GitHubのページは「GitHub - sendgrid/sendgrid-python: The Official Twilio SendGrid Led... -
C1801: Do not use len(SEQUENCE) to determine if a sequence is empty (len-as-condition)と怒られた時
pylintを使っていると、C1801: Do not use len(SEQUENCE) to determine if a sequence is empty (len-as-condition)と怒られました。原因とその回避方法について。 【pylintで怒られる】 たとえば以下のようなコードを書く。 test_list = [] if len(test_list) == 0: print('empty') 特に間違いというわけではなく、きちんと動作する。が、py... -
Python + SendGrid API でメールを送信する
SendGridのPython用ライブラリを使ってメールを送信するメモ。なんか妙にいろいろハマってしまった。。。 バージョンは5.6.0で現行6.0.2よりちょっと古い。引数とか割と違うし、結局ソースコードみるのが早い。。。 【環境】 環境は以下。 macOS mojave 10.14.4python 3.7.3sendgrid 5.6.0最新の6.0.2だと引数とかいろいろ違ったので、バージ... -
boto3でS3にアップロードした画像が、ブラウザで表示するとダウンロードされてしまう時
公開用のS3のバケットにアップロードした画像を、URL直打ちで閲覧すると、いつもならブラウザに表示されるのだが、ダウンロードされてしまうケースがある。 content-typeでイメージのmimeタイプが指定されていないため。対応のメモ。 【現象】 Lambda関数(python3)で画像を生成し、S3の公開用バケットにアップロードした。アップロード先の... -
Pandasで2列を比較してTrue/Falseの新たな列を作る。さらに1/0へのマッピング
Pythonの便利なデータフレームのライブラリPandasを使って、2列の値を比較してTrue/Falseの新たな1列を作るやり方のメモ。また、他のシステムとの連携ではTrue/Falseじゃなくて1/0(or 0/1)が必要だったりするので、そのマッピングについても。 【環境】 python 3.7.0 panda 0.23.3 【2列の比較】 以下のようなcsvを用意する。 a,b 0,0 0,1 1,...