at_yasu's blog

ロード的なことを

python

PyPy と Python25 と Python27

なんか最近PyPyがアツいので、ランダム文字列を作製するスクリプトをぶん回して、どれだけ早くやるのかパフォーマンステストをしてみる。決して仕事をする気が無かったわけではない。多分…ソースはGithubに置いています。ランダム文字列の作成をひたすらする…

logging

logging module を使ってるのですが、basicConfig をよく書き忘れるのでメモ書き logging.basicConfig(format='%(asctime)s %(module)s[%(lineno)d] [%(levelname)s]: %(message)s', filename = 'log.txt', level = logging.DEBUG) 上記のようにやると、下記…

ピラミッドを作る?をPythonで。

http://ja.doukaku.org/8/ を頭の体操がてらやってみました。 def pl (n, max = 0): """ >>> pl(4) * *** ***** ******* """ if max == 0: max = n if n <= 0: return ws = ' ' * (n - 1) ast = '*' * ((max - n) * 2 + 1) print "%s%s" % (ws, ast) pl(n -1,…

argparse

Python 3.0/2.7以降で標準モジュールになったargparseですが、結構いいかなと思ったけど*1日本語文献が不思議なことにpython-doc以外に見当たらないのでメモ書き。なお、2.6系でも使えて、pip install argparse でインストール。 使い方 argparser オブジェ…

Kay.framework と Igo-Python

気まぐれにこの話読みたいなぁと思ったとき、いちいち探し出すのが面倒なので自分用の clap-book みたいなの欲しいなぁと思ってました。で、ある程度構想が思いついたので(マテ)、Kay Frameworkの練習がてら先週あたりから書いていました。 要は、見出し+…

Mac OSX 10.6 SnowLeopard に PIL をインストールする。

はまったのでメモ。GoogleAppEngine でPILがいると怒られたので、PILをインストールしました。ただ、MBA に XCode4 しか入ってない状態で、PILを入れようとすると下記のような感じでコケます。なお、Xcode3は入れたことありませんので、gcc4.0 は使えません…

GitHub にスクリプトを置いた

タイトル通りです。いくつかのPythonスクリプトをGitHubに置きました。ほとんどは、コンソールで使うものばかりで、パスワード(ランダム文字列生成)したり、web上にあるHTMLから画像を引っこ抜いたりするモノとかです。 GitHub - a-yasui/atysPy: self Pyt…

お題:ランダム文字列

id:fumokmm さんが、お題:ランダム文字列 - No Programming, No Life にて面白いことしてるので、乗ってみる。 説明 半角英数からなる16桁の文字列をランダムに生成して下さい。使用できる文字は 'a'から'z', 'A'から'Z'、'0'から'9'、そして '_' とします…

頭の体操

例えば、「メールアドレス,名前」が一行ずつ入ったファイルがあったとする。 [yasui@MacMini: ~/python/maptest][21:07] $ head random.cvs bsui9kbW@pdx.ne.jp,7lupVA5K5xdK OKQESJFx@docomo.ne.jp,CN2eBnufqLeC x748QoWF@ezweb.ne.jp,Bjc59Fc00xf4 nThpcgO…

Random String Generator

モノッそい簡単です def randomstr(length): stri = 'abcdefghijklmnopqrsuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' return ''.join([random.choice(stri) for x in xrange(length)]) 参考と言うか、出所:Bright-Green.com: Generating a random string

Hellow world と書かずに、Hellow worldと表示

「プログラム内にHellow world を書かずに、Hellow world を表示させる」という息抜きをしました。 今回は、引数ではなく、配列に数値を溜め込んで、ascii 文字にして表示させるという方法。配列内の数値操作には、+-{}[] を使います。 + カウンターを1上げ…

画像を9分割

画像を9分割にしてそれぞれファイルにするという処理が必要になったので、30分プログラミング。PILとDirectory Listing of /filesにあるjpegsrc.7v ってのが必要です。これのインストールにハマった。。。後、PILのcropメソッドが、(x,y,width,height)で…

例外を派手に

例外を派手にする方法 import sre_constants ... try: 0 == 1 except sre_constants.error, msg: print "%s" % msg こんな感じで。

__import__ とディレクトリ構造

__import__を使えば動的?にimportをする事が出来ますが、親カレントにあるclassや関数は読めるのかしらと思ったので、ちとテスト。 # test.py #!/usr/bin/env python def test(): print "test function" obj = __import__ ("f.f") print obj fm = getattr(g…

Python のencode

+------------------+ | あああ | | (SJIS Encoding) | +------------------+ | ^ SJIS | +--------+ +--------+ | Encode | | Decode | +--------+ +--------+ | SJIS v | +------------------+ | あああ | | (Unicode) | +------------------+

list分割

一列に並んでいるlistを三つに分割する。 >>> f = [1,2,3,4,5,6,7,8,9,10] >>> [f[0::3],f[1::3],f[2::3]] [[1, 4, 7, 10], [2, 5, 8], [3, 6, 9]] >>>

webkitで表示したHTMLのスナップショットを取る

説明は後。とりあえずソースだけ。 class PyScreenShoterWebkit: def __init__(self, urllist = None, savedir="/tmp", shot_delegate_method=None): self.url = [] self.parentdir = savedir self.now_loading_url = '' if isinstance(urllist, list): self…

__setattr__

ドキュメント読まずにpythonをいじくり回してるから無限ループに陥る馬鹿がここにおります。 classAを作った際、プロパティ*1で変数にアクセスしたい場合、ins.a とします。その時、Python内部では、instance.__getattr__(key)と呼ぶわけなのですが、内部で…

PythonでMuninのプラグイン作成

Muninというソフトを「サーバ監視、何使ってる? | スラド Slashdotに聞け」で知ったので、インストールしてみました。インストールはportsで、sysutils/munin-main, sysutils/munin-nodeをがしょがしょと。それで、Apacheの転送量をアクセスログから拾うプ…

HPにある、リンクの貼られた画像をダウンロード

指定したHP上にあるリンクの貼られた画像をダウンロードするスクリプト。画像上はサムネイル表示で、大きい画像へのリンクが貼られている場合があります。それをいちいちクリックして取り出すのが面倒なのでさくさくっと作成。朝っぱらから、こんな物を作っ…

Log rotation

今まで使ってたShellスクリプトが、個人的に使いにくくなったので、ログのロテーションスクリプトを組みました。**2008/11/07 14:00 更新 -pオプションの必須条件を廃止。 よくよく考えれば、ファイルのロテーションに使えるジャマイカと気づいて、-pを消…

FTPでアップロードしたファイルの文字コード

WindowsのFFFTPからアップロードしたファイルが、日本語名が使われている場合、大体はsjis(cp932)です。稀に、utf8を使って下さる女神のようなお方がおりますが、滅多にいないと思う。んで、サーバ側のファイル名の文字コードを変更するPythonプログラム。*1…

ファイルの文字コード変更

ファイルに複数の文字コードが入り乱れている場合があります。何かのお蔭で。例えば、先頭から30行目はShift_JISで、以降はUTF-8と云うファイルがあるとします。 これでは上手くファイルを表示/編集することができません。下記のプログラムは、一行一行の文…

Pythonでメールをデコード 〜メモ書き/文字コード取得編〜

Pythonでメールの内容を読み取ろうとしているのですが、どうも上手くデコードできないメールがある。で、エンコード名もiso-2022-jpと合っている。何が悪いのか調べたら、どうもPython(てか世界一般的には)iso-2022-jpは全部で6種類があるらしい。*1で、文…

pythonで和布蕪

MeCabで解析をしようと、pythonでごにょごにょいじっていたのですが、文字コードでなかなか上手くいかずハマってました。で、どうもMeCabはEUC-JPで解析をするようにコンパイルしてしまったため、UTF-8のまま流し込もうとしたら失敗。オプションで強制的にUT…

リストでいらない要素を消す 〜メモ書き〜

リスト内に不必要な要素があり、それを消したい。 a = ["a","b",None,"c"] # Noneを消したい a = [e for e in a if e] # これでNoneが消える!!

PythonでSaxを使う

SecondLifeで現在、webから換金情報をXMLでダウンロードできるようになっています。ので、pythonでさくさくっとパースするクラスを作りました。pythonは2.5で動作確認。2.4だと動くかどうか不明。 #!/usr/bin/python # # written by a.yasui <a.yasui@gmail.com> # # ex, ISBN:9</a.yasui@gmail.com>…

pythonメモ -- 関数編

関数に渡す値を辞書型にして渡す方法結果的には test(**dic) のように渡せば良い以下実験 >>> h = dict(req="",arg='aaa') >>> test(h) >>> test1(h) >>> test1(*h) arg >>> test1(*h) arg >>> test(*h) arg >>> h {'req': '', 'arg': 'aaa'} >>> h = dict(r…

Google Web Appにとりあえずアップロードしてみた。

タイトル通り。http://caffeestrage.appspot.com/ただ、このWebAppは、元はhttp://coldstrage.a-yasui.info/なんですけど、管理画面でDjango依存のを使ってます。その管理画面を使わないとこのAppは意味が無い状態なのです。つまり、本当の意味で、とりあえ…

pythonすてき -- 辞書とループとbreak

正規表現をKeyとした辞書があったとする。そこに適当な値Aがあり、辞書の中の正規表現と合う物があれば辞書の値を、無い場合は"um match"と表示。何を言ってるのか解りにくいと思うけど、要は下記のコード。説明下手で御免なさい。 #!/usr/bin/python import…