それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

python

IPアドレスが、サブネットに含まれるか判定する( python )

python で ip address がネットワークに含まれるか計算したい このIP 209.85.220.73 この、ネットワーク 209.85.128.0/17 に入るんだっけ。 計算してみる python の netaddr パッケージを用いて計算する pip install netaddr ##または pipenv 経由で pipenv …

pyenv で一時的にバージョンを変える- pyenv shell

pyenv で一時的にバージョンを変える pyenv には、そのシェル内部だけ、一時的にバージョンを変えることができるサブコマンド shell が存在する。 pyenv shell の例 pyenv shell 3.7.2 コマンド類 基本的なコマンド pip / python などは pyenv で指定した方…

python の netaddr で ip6( ipv6) アドレスを扱う

前の、ipv6 版です、 ip アドレスを計算を簡便にするライブラリがあったので使ってみることにした。 ライブラリを読み込む インストールする。 $ pip install netaddr 使う準備をする。 from netaddr import * v4/ v6 ともに同じライブラリで扱うことが出来…

python の netaddr で ip( ipv4) アドレスを扱う

ip アドレスを計算を簡便にするライブラリがあったので使ってみることにした。 ライブラリを読み込む インストールする。 $ pip install netaddr 使う準備をする。 from netaddr import * ip アドレス(ネットマスク含む)を扱う。 サブネットマスク表記を含…

macOSのメニューバー項目を コマンドから表示・非表示をトグルして切り替える。(VPNの表示非表示の例

macのメニューバーの項目を表示・非表示するのがメンドクサ VPN を接続したときだけメニューバーに表示してくれればいいのに、VPNを使わないときもVPNメニューがでてくるのは邪魔だよね。 defaults で制御できる。 メニューバーの項目は、defaults で設定値…

pipenvを使う。pyenv+venvもいいけど、いまどきな'pipenv' で環境構築に使って使い勝手を調べてみた.

目次 目次 python のパッケージ周りの進化(?) pipenv を一言でいうと すぐわかるpipenvの使い方。 pipenv についてはこれ読むとわかる。 requirements.txt venv (virtualenv) pyenv pipenvその2 pipenvを使ってみる。 pipenv 環境を作る pipenv インス…

python で日本語のUnicode のコードポイントから平仮名を連番テーブルを作る

python でA-Zみたいに 「ひらがな」をコードポイントで扱う。 tl;dr >>> [ chr( i+ 0x3042) for i in range(0,85)] ['あ', 'ぃ', 'い', 'ぅ', 'う', 'ぇ', 'え', 'ぉ', 'お', 'か', 'が', 'き', 'ぎ', 'く', 'ぐ', 'け', 'げ', 'こ', 'ご', 'さ', 'ざ', 'し'…

$(pyenv init -) が遅いので遅延ロードにした

ターミナルの起動が遅い。 最近、妙にターミナルの起動が遅くて苦痛だなと思って調べたら pyenv 関連だった。 rbenv もそうだったし、pyenv もやはり遅い。 rbenv に関してはrbenv init では諦めて、symlink を使って解決しているが pyenv は別の方法を模索…

neovim で python3 の環境を安定的に運用するために pyenv/virtualenev 化した。

neovim と pyenv が同時にあると困る。 pyenv で version を切り替えた後に neovim を使おうとすると python3 系のpip モジュールが見つからなくて困る。 問題をもうちょっと詳しく 次のような状態になると、neovim がpython3 ネーヨ。とエラーになる。 pip …

画像をpdfに変換する

画像を、PDF(画像埋込)に変換する img2pdf を使ってみる img2pdf のインストール img2pdfは pip で提供されている pythonのコマンドなので pip でインストールする。 pip install img2pdf これで準備出来た。 使ってみる。 ls *.jpg | xargs -I@ img2pdf @…

pip インストールを自動でやる。

pip を自動で実行すると Yes / No を聞かれる DockerileでCOPYしたシェルスクリプトからpip をインストールしてたら、割とめんどくさい事になった。 Proceed (y/n)? Exception: Traceback (most recent call last): (略 return ask('Proceed (y/n)? ', ('y',…

python でSMTPの接続をチェック

メールというのは、老頭児なインフラのくせに、以外に今でも使われていてて困る。 SMTPでつながらないのでテスト。 で、SMTPでメールが送れないので接続テストしようと思った。 python で python は smtplib を使えばかんたんに認証できる。 from smtplib im…

pyenv でインストールされたpipを含めてupgradeする方法

pyenv の python をバージョンアップしたい pyenv でインストールしたpython をバージョンアップして、pipをmigrate したい・ pyenv はバージョン毎にpip環境が作られるから、pyenv でglobal をアップグレードすると、使ってたpipのパッケージが移動されずに…

python の datetime をUNIX timestamp にする方法

python で int 秒をとる UNIX Epoch な時間が欲しいなーって思ったときにどうするか int秒のタイムスタンプがあったら嬉しいわけですよね。 #!/usr/bin/env python import datetime import time import pprint pp = pprint.pprint a = datetime.datetime.str…

pythonのリスト内包表記でネスト

list comprehensions で ネストしたい for for をしたいなと思った。 data = [[ 3 ], [4] ] [ e for row in data for e in row ] ネストと if 文 data = [[ 3 ], [4] ] [ e for row in data for e in row if e %2 ==0 ] 楽しい。 filter も map も要らない。…

python の shlex でコマンドに渡す字句を分割する

コマンドを Popen に渡すときに コマンドを組み立てた文字列を配列で渡すなら、split が便利だけど、shlex.split ならさらに安全に渡せるらしい。 self.prcs = Popen( shlex.split(cmd), shell=False ) たしかに文字列をsplit すると暴走するものね。 また s…

ファイルを更新したら同期したい。

ファイルを更新したら、転送したい。 php のプロジェクトってちまちま転送してると、面倒くさいんですよね。ファイル監視してrsync するのに、grunt とか持ち出すのも馬鹿馬鹿しい。 かといって、サーバーにログインしてvim で編集するとIDE使えないし、コー…

ipythonの入力履歴を見る

ipython の入力履歴をみたい ipythonの入力のヒストリファイルはどこにあるのか調べたのでメモ ~/.ipython に ipython のファイルがある。 しらべたら次のところにファイルがあった *1 ~/.ipython 最近のLinuxなら ~/.config にファイルを集める傾向があるの…

pyenvを使って、pythonをインストールしてpython環境を使う。

pyenv をインストールする。 python 3.6 を使いたいなと思ってインストールをはじめました。 ユーザー空間にvirtualenv 作るより楽ちんだし pyenv 使おうぜ インストール git clone git://github.com/yyuu/pyenv.git ~/.pyenv macOS なひとは brew install p…

SpeakerDeck のスライドを取得してローカルで見る

SpeakerDeck をオフラインで見たい Speaker Deck で良さげなスライドをEvernoteに溜め込みたいなと思った。 ブックマークしてても検索出てこないし。どうしようかな~っておもって。とりあえずダウンロードしてみることにした。 URLをスクレイピングするのに…

python の subprocess 起動で、起動コマンドのstdin に書き込む

起動して入力をわたしたい。 cmd1= "cat" p = subprocess.Popen(cmd1.strip().split(" "), stdin=subprocess.PIPE) p.stdin.write("Hello World\n".encode('utf8')) コマンドを起動するときに、 stdin に PIPEを指定する。実行中の python と サブプロセスの…

pythonでHTMLをパースしてXpathする

python でも xpath したい。 libxml でパースするには、lxml を使うと楽 pip install lxml 使い方。 lxml.html を使うと確実に、パースする事ができる。parse は IO を取るのでStringIOを使うことになる。 lxml.html.parse(StringIO(page.html)) サンプル im…

pythonのORM:SQLAlchemy の基本的な使い方

SQLAlchemy を使ってみる。 目次 SQLAlchemy を使ってみる。 目次 インストール テーブルの作成 手順のおさらい RDBMS への接続 テーブル定義のクラス。 INSERT/UPDATE をする。 INSERT の例 UPDATE について DELETEする。 INSERT・UPDATE・DELETE のキャン…

PythonでPOSIXのMessageQueue を使う。

POSIX の メッセージ・キューを使う。 プロセス間通信などと呼ばれる。POSIXのキューを使ってみる。 プロセス間通信 - Wikipedia プロセスとプロセスのデータのやり取りにメッセージ・キューを使うことで幾分楽になる。マルチスレッド以前に複数プロセスでデ…

python3 urllib でPOST/GET/PUT と JSON 送信

python3 の urllib を使う。 ひさしくpython2.7 だし全然不満がないのですが。python3.6 の文字列展開とjinja2 が便利そうだしそろそろ python3 使ってみようと思い立って、まずは基本的なリクエストを投げるところから。 urllib.request で各種リクエストを…

raspberryPiでpythonコマンドがすごく遅い時があるのでなんとかする

python コマンドがすごく遅い コマンドによるのですが、python で出来たコマンドがすごく遅い 調べてみたら、zip 化 されたバイナリ(eggをまとめたもの)になってるので、実行時に展開が走るので遅い。本当に遅いんです。 もとのソースコードを用意したほうが…

配列の途中に要素を追加・配列に要素(配列)を追加してlist に足して行く方法

python のlist に要素を追加するには 要素を追加するには append が使える a = [1,2,3] a.append(1) print a #->[1, 2, 3, 1] python のlist の途中に要素を追加するには 配列の途中に、要素を追加するには、 insert が使える。 a = [1,2,3] a.insert(1, 'a'…

NHK らじる★らじるの再生スクリプトpythonで書き直し。

nhk 夏休み子ども科学電話相談の季節です!! 今年は他のことに夢中になっていて、すっかり前半戦を聞き逃してしまいました。 聞き逃してしても、録音出来るように、スクリプトを作りました。 しっかし、毎年この季節に、Radikoとらじる★らじるのスクリプト…

setup.py install したパッケージを消す

setup.py で インストールしたパッケージを消すには python setup.py install よく出てきます。よく使います。でも間違ってインストールした時にどうするの pip list pip uninstall パッケージ名 pip 使えば出てきます。 pip がない場合は入れて下さい.

expect自動入力 を python で実現する

expect 便利ですよね。 expect コマンドがあればターミナルの自動入力が出来ます。 ruby でも使ってました。 でも ruby は gems がもう地獄でちょっとずつ python / javascript に移行しようと思っています。 使い方:import import pexpect 起動と処理待ちは…