python

pythonをつかって,XLSファイルをCSVに吐き出す

pyExceleratorをつかってXLSファイルをCSVファイルに吐き出すスクリプトをこちらでみつけたのだが,日本語関連でうまく動かなかったので,ちょっと手直しして自分にあったものにしてみた. #!/usr/bin/python # -*- coding: utf-8 """ xls2csv.py - xls to …

Python-mode(2.6系対応)インストールのメモ

Emacsには標準でPythonモードが入ってるんけど,2.6の構文を認識しないので書きづらい.というわけで2.6に対応したモードをインストールする.インストールどこにPython-modeの2.6対応版があるかと思ったんだけど,とりあえず標準パッケージに含まれてる事を…

python2.6からwith文つかえる!

with文が便利.例えば,openとかリソースを開いて閉じる作業の場合,こう書く import sys if __name__ == '__main__': """ main section """ try: with open (sys.argv[1], 'r') as fp: for line in fp: sys.stdout.write (line) except IOError, inst: sys.…

elispでちょこっとpythonを生成する

動的型付け言語だと,関数の型チェックを事前に行いたくなったりする.なわけで,emacsで関数の型をチェックさせる部分を自動で吐かせるスクリプトを書いてみた.役立つかわからないけど. (defun filtercar (func lst) (let ((result '()) (rest lst)) (whi…

RFC2822ライブラリforPython

RFC2822はWebAppがはやってきた訳でなかなか使う場面も多いかと思う.自分もtwitterいじってて,相互変換できたほうが良さそうなので簡単なライブラリにしてみた. mylib/rfc2822.py #coding:utf-8 # need python 2.4 or newer, maybe! import datetime # ti…

ReST(ReStructuredText)を使おう

もちろん,この日記を見ている方々はオフラインドキュメントはTexかHTMLかなにかのマークアップ言語で書かれている事でしょう.自分もそうです.(Texが嫌いとか言う人はいないよね.世の中に...???)TexもHTMLも悪くないんですが,いかんせんヘヴィ.Tex…

進歩しよう...

表をなぞるようなPythonの使い方しかしてなかったのでちょっと調べてみる.リスト内包リスト内包(list comprehensions)を使うと変なリストを馬鹿みたいに簡単に作れる. lst1 = range (10) # これは普通に [0,1,2,...,9] lst2 = [a for a in range (10)] # …

Python Code Reading 10

昨日行ってきました.於MiracleLinux講演者の方々,お疲れまでした.懇親会も楽しかったです.若干お酒に酔わされてしまいましたが.. 軽くまとめ. heapqに関すること(データ変換研究所 : 森本哲也さん) スケジューラなどの優先順位付きジョブ管理に使える…

2度目

前のGrowlSDKのときもあったのだけど,pythonのsetupからgccを呼び出すとき変なフラグがつく.今回はpy-appscript. $ tar xvf ~/src/appscript-0.19.0.tar.gz $ cd ~/src/appscript-0.19.0 $ sudo python setup.py install running install ... gcc -arch pp…

growlnotifyの謎とpythonインターフェイス

growlnotifyの挙動不審なぜかgrowlnotifyにimageオプションを渡すとNotifyが出る時とでない時がある.結局よくわからん.というわけでPythonから呼び出すインターフェイスを利用してみる.Growl SKD - Python InterfaceGrowlをPythonコードから直接呼び出す…

よくわからん事

import os os.system ("growlnotify -m 'hoge'") #1 ret = os.system ("growlnotify -m 'hoge'") #2 と全く同じ挙動のように思える2つ式と文があるが,#1は表示されない.#2は表示される.よくからんが,返り値を受けるのと受けないのでは挙動が違う...

pythonでタプルやリストを引数に展開する

Pythonでは可変長引数が使える. def func (*arg): .... func (3, 4, 5) #1 l = [3, 4, 5] func (*l) #2 #1みたいに.関数内からは引数をargに紐付けられたタプルとして呼べる.また#2みたいにリスト,タプルなどのイテレータを渡す事もできる.そこまではな…

Django Hackathon Disc8

去る土曜日,DjangoHackathonDisc8に行ってきました.ハッカソンはいきなり出来そうな気がしなかったので,GoogleAppEngineハンズオンに参加.Djangoとかなり似ているので,チュートリアルを比較的サクサク進められたかな. それよりも刺激的な事は,その後…

RE:HTMLのhrefパーサ

やさしいt-fridgeが以前に書いたhrefパーサについての返事をくれたので,コードを解析してみます.以前に僕の書いたコードは # coding: utf-8 import re def hrefParser (inStr): buff = [] ro1 = re.compile ("<a.+?href\s*=\s*\"(.*?)\".*?>", re.I) ro2 = re.compile ("<a.+?href\s*=\s*\'(.*?)\'.*?>", re.I) rs1 = </a.+?href\s*=\s*\'(.*?)\'.*?></a.+?href\s*=\s*\"(.*?)\".*?>…

HTMLのhrefパーサ

某氏がちょっこっと書いていたので.正規表現でHTMLからhrefのリンク先を全部抽出するならこんな感じ? import re def hrefParser (inStr): buff = [] ro1 = re.compile ("<a.+?href\s*=\s*\"(.*?)\".*?>", re.I) ro2 = re.compile ("<a.+?href\s*=\s*\'(.*?)\'.*?>", re.I) rs1 = ro1.search (inStr) while (rs1): buff.</a.+?href\s*=\s*\'(.*?)\'.*?></a.+?href\s*=\s*\"(.*?)\".*?>…

無駄なlambda再帰no.1

前にも書いたけど,あれ,かいたっけか?ま,とにかく,pythonは普通に使う限りは,lambda式の再帰を書けないし,レキシカル変数をlambda式の中で定義できない訳だ.で,今回は前者を考えてみた.lambdaの再帰を書く.キーワードは引数. def lambdaLoop (fun…

日本にだってすごいハッカーがたくさんいます.

日本人もすごいですよ. Pythonistaとして有名な西尾氏のブログを見てた. Pythonでワンライナーを作成する際のノウハウ集 - 西尾泰和のブログ ...これはノウハウじゃなくてアルゴリズムなのでは...?きっとlispでメタ言語を作ってコードをはかせているに違い…

末尾再帰最適化

メモです.pythonでは末尾再帰最適化(tail call optimization)が言語として実装されていないらしい. Algorithms with Python / 再帰定義 再帰の最大深度は定数で決まってるぽい. Pythonの再帰の最大深度 - Wharf Roachのはてな 最大深度を変える事もできる…

か,かえしやがれ!

まだlisp風味に書く事が抜けません.つい,こう書きたくなる. def loop (array, arg): if (hoge (arg)): return array.append (fuga (arg)) else: return loop (array.append (fuga(arg)), arg) a = loop ([], 3) ダメなんだよね.5分考えた.ああ,このメ…

ちょいと古いんですが.

PythonとLispの関係について - PaulPrescodPaulGraham氏のpythonのlisp性に関するPaulPrescod氏の反論です.Paul v.s. Paul後半は相当やゔぁい.自分の目指す,普遍的なポイントを捕らえている.書きたい事があるんだが,もう寝ます.明日はキツそうな実験だ…

辞書と文字列型

pythonの辞書について.辞書のkeyにできるものって,str型,unicode型,int型,float型,boolean型がいけるくさい.確認したところによると. dic = {} dic["ほげ"] = 1 dic[u"ほげ"] = 2 dic["3"] = 3 dic[3] = 4 dic[False] = 5 print dic {False: 5, '\xe3\x8…

恐怖の頭脳改革

とかいう邦題をつけられたEmerson,Lake&Palmerのアルバムがあったような... amachang氏もこちらで書かれているが,JavaScript出身者から見ると,Pythonのラムダ式にはいろいろ苦労させられる.今まで書いてきたような書き方が許容されない.対策として,a…

safeなpython

unicode型の続きなんですが.printとかwriteの出力形式って一応勝手に推測なんですが,*1セーフに書こうとするなら fp = opne ("hoge", "w") lst = [3, 4, 5] fp.write (str (len (lst)).enocde ("utf_8")) とか,書かなくちゃいけないんでしょうかね?...な…

朝から文字コード(笑)

今日は実験が午後からなので,午前中はpythonの勉強でもしてみる.昨日はいろいろ凹んでましたが,今日も朝から多くの人を凹ませ続ける文字コードについて. pythonは文字列処理とかに使ってます.研究の実験のデータがplaneTextで出力されるので,結果を自…

胃ヲタ

朝のコーディングは清々しいiikajsldkfjlkajslkf!!!!!!!また,朝コーヒーを飲みながらのDiana Krallも格別だ.某t-fridge日記でFizzBuzzをといているのを見て思ったんだけど,やっぱ,この手の問題にはrangeは最適だ.そういや,javascriptにはschemeのiota…

あぶすと...

書いてます.初めて書いてます.しかもデータがそろってないので,それをうまくオブラートに包んで.骨は出来たが,肉付けが薄い.しかも,英語で.しかも,春には発表がある.オーラルが当たりません様に.しかも,論文付き.え,査読はないよね...?泣け…

djangoをいじってみてる.

pythonからすっ飛ばしてやってて思ったのだが,ハッシュは dic = {"key1" : "val1", "key2" : "val2"} とかけるわけですが,呼び出し時にdic.key1となぜできないのか.辞書型はオブジェクトではないからかな?javascriptなら var a = {"key1" : "val1", "key2…