Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

2016-08-01から1ヶ月間の記事一覧

標準ライブラリgetpathはパスワード入力画面を実装できる

getpathはパスワード入力を支援する標準ライブラリです。 Pythonはデフォでこんなもんが付いてるんですね……。 実際のところ 例のごとく、importするだけ。 関数はユーザ名を抑えるgetuserとパスワードを入力するgetpass。 import getpass getpass.getuser() …

urljoinでURL文字列の細工をする

urljoinはURL文字列を細工する関数です。 同一ドメイン上のページを行ったり来たりする用途なんかには向いてるかも知れませんね。公式リファレンスでは以下のように紹介されています。 “基底 URL”(base)と別のURL(url)を組み合わせて、完全な URL (“絶対 URL…

標準添付ライブラリ「urlparse」でURLのパースをする

標準添付ライブラリ「urlparse」でURLのパースをする 実際のところ このブログの前回の記事をパースする方法はこんな感じ from urllib.parse import urlparse url = "http://shuzo-kino.hateblo.jp/entry/2016/08/28/191704" result = urlparse(url) result …

python-twitterでbotフォロー用新アカウントに情報を流し込む

先月書いた記事の続きです。ようやく着手できました……。 shuzo-kino.hateblo.jp私はbotやニュース系を一つのリストに突っ込んで時間の有る時に流し見するような使い方をします。 実際のところ from __future__ import print_function import twitter twit_in…

Google Driveにアップロードしたファイルが勝手に独自形式にされる事を防ぐ

Google Driveにアップロードしたファイルが勝手に独自形式にされる事を防ぐ方法です。 最近導入した人はデフォでオンになってるみたいですね。まずはGoogle Driveのページを起動。 右上にある歯車のアイコンをクリックし 設定をクリック 出てきた画面の内、…

イテレータを手動で回していく

Pythonでも、イテレータを手動で回していく事ができます。 実際のところ フツーにまわしていくだけなら、延々と組み込み関数next()をブン回していくだけ。 最後はStopIterationを吐いて停止。 val = (x for x in range(1,10)) next(val) #>> 1 next(val) #>>…

リスト内包表記なる魔界記法 その2:辞書型

shuzo-kino.hateblo.jp の続きです。 リスト内方表記で辞書型のデータを作る事もできます。 とはいえ、for節特有の癖から意図しない挙動をする可能性も。 実際のところ キーと値を通常の辞書型と同様の並びで実装できます。 {x:y+3 for x in "foobar" for y …

"Cannot fetch index base URL http://pypi.python.org/simple/"とか出たら……pipが古い可能性大

記事執筆時点において、pipの最新版はv8.1系です。 ところが、debian環境……例えば、Rasbianで $ sudo apt-get install python3-pipなどで導入したpipはv1.3系と凄まじく古いものが導入されます。 内部で参照している諸々は完全に時代遅れなので以下のコマン…

現在実行されているPythonのバージョンを調べる

Python2とPython3は一部致命的に挙動が異なるため、ちゃんと見てあげないとひどい目に遭う事があります。どちらの環境でも実行され得る場合、早めに分岐させておくのも手です。 実際のところ sysモジュールを導入すれば、バージョン情報を調べる事ができます…

Tera termでデバッグモードが起動できない場合、管理者権限で再実行すると何とかなる可能性がある

Tera Termのデバッグモードが実行できない場合の対処法です。 結論から書くと「管理者権限」でTera Termを再実行してください。 実際のところ Virtual Storeの影響 shuzo-kino.hateblo.jpの記事にて、 Windows7では管理者として実行しないと shift+ESCを押し…

リスト内包表記なる魔界記法 その1:配列型

リスト内包表記はforをデータ型の中でブン回して新しいリスト系データをつくる方法です。 今まで何となく使ってましたが、ちゃんと名前が付いてるんですね。 正規表現みたいなモンで最初は癖があっても慣れれば簡潔かつ高速に欲しいデータを記述できます。 …

標準組み込みのタプル型を使い方

タプル型は変更不能のデータ型です。 x = (1,2,3,'a') x[3] #>> 'a' 違った値をぶち込もうとすると、エラーを吐きます x[3] = 'b' #>> Traceback (most recent call last): #>> File "<stdin>", line 1, in <module> #>> TypeError: 'tuple' object does not support item a</module></stdin>…

Google翻訳にはデフォで中国語入力機能がついてる(ほかの言語も)

Google翻訳にはデフォで中国語入力機能がついています。 いつの間にか追加されたか、それとも前からあったのか…… 実際のところ Google翻訳で中国語のモードを選択すると、左下に何やらアイコンが見えます デフォでは左下を向いた鉛筆マーク*1のようのです。 …

forにelse節が入る

Pythonのfor文にはelse節があります。 公式ではこんな感じで説明されている。 for_stmt ::= "for" target_list "in" expression_list ":" suite ["else" ":" suite] 実際のところ for s in [1,2,3,range(1,4)][3]: print(s) else: print("fin\n") #>> 1 #>> …

forはiterableなものであれば要素でもブン回せる

forはiterableなものであれば要素でもブン回す事ができます。 公式には、以下のように記載されています。 for 文は、シーケンス (文字列、タプルまたはリスト) や、その他の反復可能なオブジェクト (iterable object) 内の要素に渡って反復処理を行うために…

書式指定ミニ言語を使ってString魔界に浸ってみる その2:辞書型を呼び出す

shuzo-kino.hateblo.jp で扱った書式指定ミニ言語の補足です。上の記法に加えて、辞書型の変数を扱う方法があります。 実際のところ 辞書型を呼び出すには、"**"とアスタリスクを二個並べる必要あり。 dic = {'bar': 'yeah', 'foo': 123} "Welcome {bar}. Yo…

range型に[:num]を適用すると、途中まで切り出す事ができる

知れば知るほど妙な挙動をするrange型。 今回は定義済みのrange型を切り貼りして使う方法を扱います。 実際のところ lists = range(3, 9, 2) ではここで、コロン記法を使ってみる事にしましょう。 すると……? lists[:0] #>> range(3, 3, 2) ……なにやら、末端…

空の多重配列をつくる

からの配列を作る際にも組み込み関数rangeが使えます。 実際のところ lists = [[] for i in range(4)] #>> [[], [], [], []] どれだけ意味があるか不明ですが、rangeの記法はそのままつかえます lists = [[] for i in range(1,10,2)] #>> [[], [], [], [], […

組み込み関数range

Pythonの組み込み関数rangeは開始地点からステップ数まで、色々設定できる便利関数です。 Rubyだと類似記法として以下の様なものがありますが……ステップまで一つの関数で面倒見てくれるのは一寸便利かも Array(1999..2006) 実際のところ まえの内容も以下の…

Pythonでは"1999 < var < 2006"といった記法が使える

Pythonでは範囲指定の記法が数学でやった通りの記法が使えます。 実際のところ var = 6 2 < var < 10 #>> True 参考もと 2. 字句解析 — Python 3.3.6 ドキュメント

文字列をバイト列にする/バイト列から戻す

x = "foo".encode() #>> b'foo' x.decode() #>> 'foo' 直接バイナリ列を定義する事も可能 x = b"bar" #>> b'bar' ascii文字以外をエンコードしようとすると、16進数の文字列になります。 扱いはasciiと同じ。 var = "ごりら".encode() #>> b'\xe3\x81\x94\…

Pythonのリスト型とコロン記法の奇妙な関係

Pythonのリスト型にはコロン記法という実に奇妙な記法があります。 今回はコレについて。 実際のところ こんなデータがあったとします。 list(range(10)) # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 全部表示 l[::] # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 二番目か…

crontabをつかってRaspiカメラから画像をメール経由で取得する

crontabをつかってRaspiカメラから画像をメール経由で取得する方法です。 実際のところ ケースとして、「8時〜18時まで一時間毎にカメラ画像を取りメールで送信」を想定します。まずはホームに移動して、タスク用ディレクトリを作成 $ cd ~/ $ mkdir scri…

Raspi用カメラに合わせた自前首振りカメラをつくる

専用カメラとかいうブルジョワ的な箱が売ってますが、あえて自前で作ってみようかと 実際のところ 必要なもの 今回使ったのは以下の通り RasPi3 RasPi公式外箱(黒) RasPi専用カメラ ジャンパ線(オス-メス)×3 サーボ:RB-90 微型RCサーボRB90出版社/メー…

【読書メモ】異世界落語 1

異世界落語 1 (ヒーロー文庫)作者: 朱雀新吾,深山フギン,柳家喬太郎出版社/メーカー: 主婦の友社発売日: 2016/05/30メディア: 文庫この商品を含むブログ (5件) を見るラノベでありながら、表紙にオネーちゃんもIKEMENもいない。 ゲーマーズ秋葉原店の…

【イベントログ】makers faire Tokyo 2016に行ってきました

makers faire Tokyo 2016に行ってきました 会場の様子 スチームパンク的スピーカー 生態系を構築する植物工場 カワイイ系ゲーム デザインはプロの女性がやったとの事 植物工場デモ 果実系を中心にやっているそうです 自動水やり機 ビットコイン決済の自販機 …

PiCameraとwiringpiの組み合わせでやっつけデジカメをつくる

今回の記事では以下の組み合わせを使ってやっつけデジカメを作ります。 Python3 Raspberry Pi 3 & RasPiCamモジュール PiCamera wiringpi(Raspberry PiのGPIO周りをよろしく扱う) 実際のところ まずはwiringpi自体を導入 $ sudo apt-get install wiringpi次…

【イベントログ】SPORTEC2016に行ってきました

日本最大のスポーツ・健康産業総合展示会「SPORTEC2016」に行ってきました。 屋内プール プロデューサーさん、プールですよ! プール! というわけで、個人宅でも置けるプールです。 塩素消毒機能もついて、ちょっとした高級外車くらいのお値段。 オプション…

組み込み関数len()は文字列もリストも評価できる

pythonの奇っ怪な実装の一つ、組み込み関数len()は文字列もリストも評価できます。 オブジェクト自体には長さを返す関数は無いみたいで、全部コイツを経由する羽目になります。 実際のところ 文字列も len("13") #>> 2 リストも len([1,2,4]) #>> 3 疑問 自…

pythonでprintfみたいな時間の文字列を生成する

pythonでprintfみたいな時間の文字列を生成する方法です。 strftimeライブラリを読みこめばいけます。 実際のところ "月_日_時刻_タイムゾーン"のフォーマットで出す方法は以下の通り。 from time import strftime strftime('%m-%d_%H:%M:%S_%Z') # '07-30_2…