Python

Windows 10 で Python ファイル実行時にコマンドライン引数が渡されない件

拡張子 .py に Python.exe を関連付け、かつ PATH と PATHEXT を通した状態で foobar.py に対して、 $ foobar -h を実行してもヘルプが出ない。-h の部分が無視されて実行されてしまう。 この問題に対処したのでメモ。 前提 対処方法 Q: なんでこんな対処が…

テキストファイルをエディタで修正するスピードを競うゲーム edita.py をつくった

edita.py というゲームをつくった。 どんなゲーム? 修正とは ユーザーに要求される能力 実装の話 工夫したこと ファイルの監視 タイムの計測 問題文の作成 どんなゲーム? ゲーム本体は edita.py というスクリプト。 実行すると、edita.py は問題文ファイル…

「指定フォルダ内の画像ファイルをサムネイルで一覧表示する HTML」をつくる Python スクリプト

ローカルに保存している画像ファイルたちを簡単に俯瞰する手段が欲しいと思っていたが、良い方法が見当たらなかったのでつくることにした。 成果物 GitHub に置いた。 github.com サンプル 指定フォルダ内の全画像を、こんな感じでズラリと並べる。 クリック…

Python boto3 で InsecureRequestWarning を消す方法2つ

方法1: 環境変数を使う 方法2: urllib3.disable_warnings() を使う 参考 方法1: 環境変数を使う PYTHONWARNINGS 環境変数に "ignore:Unverified HTTPS request" を書いておく。 以下は Windows の例。" があると動かないので注意。 $ set PYTHONWARNINGS=ign…

Python の xlrd ライブラリを用いて Excel ファイルのシート内容を Markdown に落とす

Excel ファイルは非常に読みづらいので、Markdown に変換して「表ではなくテキストファイルを読む感覚で」読み進めたいなと思った。Python の xlrd ライブラリだと簡単に Excel ファイルを辿れそうだったので、今回試しに作ってみた。 スクリプトは GitHub …

Python requests で SSLError が起きて毎回ググってるのでまとめた

Python で REST API を叩く時は requests ライブラリを使うが、最近の REST API は HTTPS をメインに使うようになった。これに伴い SSLError というよくわからんエラーが出るように。 このエラーは何を意味するのか。どう回避すればいいのか。その辺を知るヒ…

Python でタグ付き正規表現を replace する(後方参照を用いたreplace)

たとえば以下のような文字列があったとして、 "hoge **fuga** test piyo" この **fuga** 部分を <strong>fuga</strong> に置き換えたいとする。 さてどうやる? アプローチ スクリプト スクリプト要約 アプローチ まず対象は正規表現と探すとして、問題は 置換後の文字列をど…

Python で指定時刻二つの差分を秒単位で求める

何度もググるので記事にした。 たとえば 14:15:22 - 13:27:33 を計算したい場合、以下のようにする。 import datetime dummydate = (2011, 11, 11) dt_start = datetime.datetime(*dummydate, 13, 27, 33) dt_end = datetime.datetime(*dummydate, 14, 15, 2…

Python で string に format を使ってる時になぜか KeyError が出る件

結論: jsonstring には format 文を使わないこと たとえば以下のようなコードを実行すると、 value1 = 1 value2 = "2" jsonstr = '{"property":{"key1":"{:}"},"key2":{:}}'.format(value1, value2) KeyError: '"property"' などと怒られる。 原因 原因は fo…

Python3 で TypeError: 'dict_values' object does not support indexing が出る件

Python2 で書いてた以下コードを Python3 で実行すると、 return r.json()['query']['pages'].values()[0]['revisions'][0]['*'] TypeError: 'dict_values' object does not support indexing が出た。 原因は、Python3 が dict_values() が明示的に list 型…

Python の json ライブラリで json.decoder.JSONDecodeError が出る件

json.loads() などを使ってるとよく出る。 loads() に与えてる jsonstring のフォーマットが(JSON的に)正しいか確認する こと。 Web 上に支援ツールがある。JSONLint を使ってバリデーションしてみたり、 Free Online JSON Formatter を使って見易く表示し…

Python でモジュール内名前空間をつくる

やりたいこと 動機 やり方 コード 実行結果 その他ノウハウ やりたいこと hoge.py の中で名前空間を実現したい。 動機 別ファイルを作ればモジュール化できるが、一ファイルで済ませたいから。 やり方 名前空間用の class を作り、(その名前空間に入れたい…

インクリメンタルサーチで探せるブックマークツールを HTML/CSS/jQuery でつくった

どんなブツ? 動機 使い方 実装のはなし Q: なぜ Python で完結させなかった?(HTML/CSS/Javascriptを使った?) Q: どうやってインクリメンタルサーチを実現している? Q: どうやって Markdown から HTML に変換している? おわりに どんなブツ? 三行で: …

Windows で Python2.7 から Python3.6 に移行した

前提(Python環境) 前提(Pythonコード) ゴール 作業の流れ (1) サンドボックス (2) Python 環境を 2.7 から 3.6 に置き換える (参考) Python 3 のバージョンはなぜ 3.6 ? (参考) サンドボックスでどこまで移行するべきか (参考) 変換ツールは使わないの? (…

Windows で py ファイルの関連付けが保存されているレジストリキー

答え Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Python.File\Shell\open\command] @="\"D:\\bin1\\python27\\Python.exe\" \"%L\" %*" 今日遭遇した問題 普段は py ファイルに Python2.7 を関連付けているのだけど、そろそろ 3 に移行したく…