2010年4月21日水曜日

Pythonで0埋めなどして固定サイズの文字列を作成

業務システムなど作っていると、CSV作成などで'00000013245'などの
固定長文字列を生成する場面が良くあります。
Pythonなら簡単です。

8文字の固定文字列を作る場合
>>aa = 3452
>>xx = ("00000000" + str(aa))[-8:]
>>print xx
00003452
>>

[-8:] というのは
「後ろから8文字目から(後ろから8文字目は含む)最後まで」
という意味です。

逆に
>>xx = ("00000000" + str(aa))[8:]
>>print xx
3452
>>

これは「前から8文字目から(8文字目は含まない)最後まで」
という意味です。

前からと後ろからで若干混乱気味になりますね(私はなるw)。

これは単にリストをスライスしているだけ(文字列もリストの一種)
ですので、普通のリストでも同じように出来ます。


--追記--
匿名さんからのコメントで以下の方法もあるよと指摘が。

print 3452.zfill(8)

print "%08d" % (3452)

print "%(num)08d" % {'num':3452}

そのものズバリの方法があるジャマイカ orz...

まったくもって勉強不足でございました。精進いたします!




2010年4月15日木曜日

Pythonでリストをループ処理するときに添字も取得する方法

例えば、

datas = ["石田","北島","佐藤","田中","中野","本田"]
i = 0
for data in datas:
    i += 1
    print u"出席番号:" + str(i) + u" 名前:" + data

これは結構ダサいよね。

これはこんなふうに書ける。

datas = ["石田","北島","佐藤","田中","中野","本田"]
for i,data in enumerate(datas):
    print u"出席番号:" + str(i+1) + u" 名前:" + data

美しくなった(^^)/




2010年4月9日金曜日

Blogをはてな->Bloggerに移行。

3年くらいずっとはてダを使っていたのですが、
ここBloggerに移しました。

最近のはてなの重さはちょっと異常。
あれではどんどんユーザー逃げていくんじゃないだろうか。
ある程度減ったら重いのも解消されるかもしれないけど、
それじゃあ本末転倒だしなぁ。

はてなは決して嫌いじゃないので改善されないか待ってたんですけど、カメラを買い替えてWebアルバムをPicasaに替えたこともあってこちらに移してしまった。。。。

こちらは表示も軽快だし、管理画面も割と使いやすいしこれまた軽い。

Webサービスはレスポンスが第一だよねぇ。



2009年12月31日木曜日

2009年8月14日金曜日

OSX10.5のPythonでMySQLを使えるようにする

仕事でDjangoを使うことになり、自宅のMacBookにも環境を作ろうとしてMySQLdbのインストールで大変ハマったのでメモしておきます。

なお、PythonはOSプリインストールのもの(2.5.1)、MySQLはMAMPでインストールされるものを使うのですが、実はこの「MAMPでインストールされるMySQL」を使っているために色々面倒だったのでした > <

まずはMySQLdbをダウンロード(私が使ったのはMySQL-python-1.2.3c1)してきて普通に

$ sudo python setup.py build

山のようにエラーが出ます orz...

これはMAMPでインストールされるMySQLにはコンパイルに必要なヘッダファイルがまったく付属していないからです。
そこでMySQLのダウンロードサイトからMAMP付属のMySQLと同じバージョンのMySQL(私の場合は5.0.41)をダウンロードし、同梱されているヘッダファイルを/Applications/MAMP/Library/include/mysqlにコピーします。

さらにMAMPですから普通とはMySQLがインストールされている位置がまったく違うので、シンボリックリンクを作ってごまかします。

sudo mkdir /usr/local/mysql
sudo mkdir /usr/local/mysql/lib
sudo ln -s /Applications/MAMP/Library/lib/mysql /usr/local/mysql/lib/mysql

さらにMySQLdbのsite.cfgの下記の箇所も修正します。

#mysql_config = /usr/local/bin/mysql_config
mysql_config = /Applications/MAMP/Library/bin/mysql_config

そして再度

$ sudo python setup.py build

まだエラー orz... こんどはライブラリがないだと。。。

仕方がないので若干強引かとは思ったんですが、先にダウンロードしたMySQLに同梱されているライブラリ群を/Applications/MAMP/Library/lib/mysqlに全てコピーしちゃいました。

そして再度

$ sudo python setup.py build
$ sudo python setup.py install

ようやくインストール出来ました。めでたしめでたし^^

$ python
>>> import MySQLdb
>>>

おおお、エラー出ないぞ!w

2009年7月6日月曜日

まな板立てでMacBookを縦置き



やろうやろうと思ってて忘れてたんだけど、今日ニトリで見て思いだした。


まだどうやって置こうか決めてないんだけど取り敢えず置いてみた。


f:id:species5618jp:20090705180000j:image


299円也、安い。。。





2009年5月30日土曜日

余計なお世話のSuperFetch ( Windows Vista )


会社のPCのHDDが1日中回りっぱなしなことに最近気付きました。「む?ウィルスか?」と思いタスクマネージャーで負荷を見たところ、そんなに過負荷ではないんですが、HDDは回り続けてる。

リソースモニタのHDDのところを見ると、svchost.exeがVirtualBoxの仮想マシンイメージをずっとReadしています。「あー検索インデックス作成をやってるんだな。仮想マシンのイメージをインデックスしてどうすんじゃいww」と思い、WindowsSearchを止めてみました。でも相変わらずHDDは回り続けてます、むー。

で、ググッてみたらありましたありました。

SuperFetchは失敗作
http://agorian.com/web/vista/000099.html

【失敗機能】Vistaの~SuperFetchは絶対に切れ!
http://pc11.2ch.net/test/read.cgi/win/1178624264/l50

なんと空きメモリを利用して、起動するアプリケーションをあらかじめメモリに読み込んでおくサービスなんですと、頼みもしてないのに。。。スパイウェアかウィルスかと思ってアセったではないか!

こんなのを勝手に動かされたら困るよなぁ、ディスクの寿命が縮まるじゃないか。
というか、仮想マシンのイメージを読み込んでどうするつもりだVista、アプリケーションじゃないってw

Template Design: © 2007 Envy Inc.