かべぎわブログ

技術的なことについてかけたらいいな…

Python

Lambda(Python)でAMIとそれに紐付いたスナップショットの世代管理をする

概要 Lambda(Python) を利用してAMIとそれに紐付いているスナップショットの世代管理をしてみようと思います。 スクリプト例 ちょっとした説明 タグにauto_backupと書いてあるAMIの世代管理をしてくれます。 上の方の変数generationに指定した数だけAMIを保…

Pythonのshutilのcopytreeでファイルを再帰的にコピーする

概要 Pythonのshutilのcopytreeを利用してファイルを再帰的にコピーしてみようと思います。 コード例 shutil.copytree('コピーもと', 'コピーさき') です。 実行してみる forudaBBBがないことを確認 $ ls -l forudaAAA/ forudaBBB/ ls: forudaBBB/ にアクセ…

Pythonのshutilのcopyfileでファイルをコピーする

概要 Pythonのshutilのcopyfileを利用してファイルをコピーしてみようと思います。 コード例 shutil.copyfile('コピーもと', 'コピーさき') です。 実行してみる saki.txtなんてものがないことを確認(moto.txtはある) $ ls -l moto.txt saki.txt ls: saki.…

Pythonのpathlibのmkdir()でディレクトリを作成する

概要 Pythonのpathlibのmkdir()をつかってディレクトリを作成してみます。 コード例 実行してみる ディレクトリができた!!! $ ls -ld /home/ec2-user/tsukuri ls: /home/ec2-user/tsukuri にアクセスできません: No such file or directory $ ./pathlib_m…

Pythonのpathlibで相対パスと絶対パスを取得する

概要 Pythonのpathlibモジュールを利用して、相対パスと絶対パスを取得してみたいと思います。 コード例 実行してみる こんなかんじで相対パスと絶対パスが出力されていることがわかります。 $ ./blog_python/path.py blog_python/path.py /home/ec2-user/bl…

Lambda(Python)でインスタンスの特定のタグの値がなんなのかを出力する

概要 Lambda(Python3)をつかってEC2インスタンスについているあるタグの値がなんなのかを出力してみます。 スクリプト tag_keyに出力したいタグのkeyを指定します。 実行結果 たとえば、こんなかんじでタグがついていたとします。 それをこのLambdaを実行す…

Lambda(Python)で特定のVPCの中のサブネットの一覧を出力する

概要 Lambda(Python)を利用して、特定のVPCの中のサブネットの一覧を出力してみたいと思います。 スクリプト例 Lambdaのスクリプト的にはこんなかんじ。 実行結果 { 'Subnets': [{ 'AvailabilityZone': 'ap-northeast-1c', 'AvailableIpAddressCount': 250, …

Pythonで配列をuniqする

概要 Pythonで配列の要素をuniqして、重複を排除してみたいと思います。 コード例 こんなかんじの配列があったとします。 test_array = [ 'AAA', 'BBB', 'BBB', 'CCC', 'AAA' ] それをこんなかんじでsetにつっこんであげます。 uniq_array = list(set(test_a…

Pythonでいま昭和何年か調べる

概要 新元号になっても平成を使い続けるかもしれないというニュースを見たので。 平成に対応できずに便宜上昭和を使い続けているレガシーな企業で役に立つと思う(役に立つとは言っていない) できたもの 実行してみる $ date 2018年 5月 16日 水曜日 21:15:01…

Pythonで平成があと何日あるのか計算する

概要 Pythonをつかって平成があと何年で終わってしまうのか計算してみたいと思います。 前提 2019/05/01から新元号になります。 というわけで平成最後の日は2019/04/30です。 できたもの こんなかんじでやってます。 標準ライブラリのdatetimeを利用して計算…

Pythonで引数をランレングス符号化する

趣味と実益を兼ねてPythonでランレングス符号化(圧縮)するスクリプトを書きました。 スクリプト こんなかんじ。 #実行結果 こんなかんじで利用できます。 $ ./run_length.py aaabbbbbcccdddefffgggggh a3b5c3d3e1f3g5h1 おわり おわれ Python 1年生 体験し…

Pythonで配列の要素を入れ替える

Pythonで配列の要素を入れ替える方法についてご紹介します。 こんなかんじ 実行するとこんなかんじ $ ./array_element_change.py ['A', 'B', 'C'] ['B', 'A', 'C'] ['A', 'B', 'C'] ['C', 'A', 'B'] まとめ array[0],array[1] = array[1],array[0]とするだけ…

Pythonで引数を昇順でバブルソートする

趣味と実益を兼ねてPythonでバブルソートするスクリプトを書きました。 スクリプト こんなかんじ。 #実行結果 こんなかんじで利用できます。 $ ./bubble_sort.py 2 3 1 4 5 ['1', '2', '3', '4', '5'] おわり おわり Python 1年生 体験してわかる!会話でま…

PythonでImportError: bad magic number が出たときの対処法

事象 コマンドライン上でPythonを実行したところ、以下のようなエラーがでました。 その対処法です! ImportError: bad magic number in 'pathlib': b'\x03\xf3\r\n' 対処法 古いバージョンの.pycファイルがそのまま残ってしまっていたみたいなので削除。 fi…

pathlibで絶対パスを取得してみる

Python3.6で使いやすくなったと言われているpathlibをつかって絶対パスを取得してみたいと思います。 スクリプト 実行結果 このスクリプトを実際に実行してみるとこんなかんじです。 そのスクリプトが置かれている絶対パスと、スクリプト名を含む絶対パスが…

Pythonのコマンドライン引数 雑チートシート(シェルスクリプトでできたことをやりたい)

シェルスクリプトの${なにがし}をPythonだとどうやって書くのかをまとめました。 (Linux上のシェルスクリプトを適宜Pythonにしたい) 雑チートシート Python ShellScript 説明 sys.argv[0] ${0} 自身のファイル名 sys.argv[1] ${1} 1番目の引数 len(sys.argv)…

最大公約数を求めるLambda(Python3)

なんかまったく需要がなさそうだけど気の迷いでつくりました。 概要 変数のxとyに整数を入力してあげると、printで結果を返してくれます。 以下のコードでは84と16の最大公約数を求めています。 かんたんな説明 最大公約数は以下のようにして求めることがで…

Windows環境でPythonをコマンドでサイレントインストールする

今回はWindows環境でPythonをコマンプロンプトなどを利用してサイレントインストールしてみたいと思います。 コマンド 以下のコマンドをコマンドプロンプトで実行することでPyhtonをインストールすることができます。 C:\\python-3.6.3.exe /quiet InstallAl…

boto3でDynamoDBのテーブルの内容をscanしてすべて取得してみる

boto3を利用してDynamoDBのテーブルの内容をscanしてすべて取得してみたいと思います。 前提 以下のようなテーブルを用意しています。 これをすべてscanして取得します。 コード コードは以下の通りです。単純ですね! python 以下のような結果が返ってくる…

S3上のテキストファイルをLambda(Python)で取得する

今回はS3の中に入っているテキストファイルの内容をLambda(Python)で取得してみたいと思います。 S3上には内閣府が公表している国民の休日のcsvファイルの文字コードをutf-8に変換したものを格納しています。 ↓これをsjisからutf-8に変換 http://www8.cao.go…

PythonでHHMM形式の時刻の差分を取得する

PythonでHHMM形式同士の時刻の差分を取得する方法を備忘録的に残しておきます。 python 実行すると以下のように差分が取得できます。 takakabe@MyComputer:~$ python time_diff.py 0:30:00 入門 Python 3作者: Bill Lubanovic,斎藤康毅,長尾高弘出版社/メー…

RaspberryPiとタクトスイッチでトグル動作を実現してみる

今回はRaspberryPiとタクトスイッチをつかってトグル動作を実現してみようと思います。 そもそもトグル動作とは? トグルとは、同じ操作によって二つの状態を交互に切り替えられるような仕組みのこと。操作画面上でそのような振る舞いをする要素を「トグルボ…

【Lチカ】Raspberry PiをPythonでLチカする方法【Python3】

Raspberry PiをpythonでLチカする方法を紹介します。 ちなみにRaspberryPiの「Pi」はPythonのパイです。RaspberryPiお墨付きの言語ですね!!! (コマンドラインでかんたんにLチカする方法もあります) kabegiwa.hatenadiary.jp さて、実際に手を動かしていき…