雲雀は高く空を舞い このページをアンテナに追加 RSSフィード

「ひよこは高く空を舞い」について

2009-12-03

[]コーディング規約 コーディング規約 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - コーディング規約 - 雲雀は高く空を舞い コーディング規約 - 雲雀は高く空を舞い のブックマークコメント

ここら辺。pepはPython Enhancement Proposalとか。

[]パッケージに関する覚え書き パッケージに関する覚え書き - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - パッケージに関する覚え書き - 雲雀は高く空を舞い パッケージに関する覚え書き - 雲雀は高く空を舞い のブックマークコメント

パッケージについて

__init__.pyの入ったディレクトリをパッケージとしてimportできる。Mac OS Xのバンドルみたいな感じ。

また、ディレクトリは多層構造にできるけど、その際各ディレクトリに__init__.pyが必要。

__init__.pyはパッケージインポートの祭の初期化メソッドなどを記すが、空でもかまわない。


パッケージのインポート

Sound/
    __init__.py
    Format/
        __init__.py
        echo.py
        sorround.py
     Filters/
        __init__.py
        equalizer.py
        vocoder.py

このようなパッケージがあった場合、echo.pyをインポートするにはimport Sound.Format.echofrom Sound.Format import echoなどとする.

echo.py内の関数echofileterを使用する場合、import Sound.Format.echoとした場合はSound.Format.echo.echofilter(input, output)とする。

from Sound.Format impor echoとした場合はecho.echofilter(input, output)とできる。

またfrom Sound.Format.echo import echofileterと、直接関数をインポートすることもでき、この場合はechofilter(input, output)と使える.

from package import itemとした場合、itemはサブパッケージ、サブモジュール、モジュール内で定義されている関数、クラス、変数などを指定できる。

import package.itemとした場合、itemに指定できるのは、モジュールかパッケージのみ。

パッケージ内での暗黙のあるいは明示的な相対import

1) 暗黙の相対パスimport

パッケージ内でのimport itemの実行はまずパッケージ内で探索されその後標準検索パスを見る。

import されたモジュールが現在のパッケージ (現在のモジュールをサブモジュールにしているパッケージ) 内に見つからなかった場合、 import 文は指定した名前のトップレベルのモジュールを検索する。

モジュール Sound.Filters.vocoder で Sound.Effects パッケージの echo モジュールをimportしたいときは、 from Sound.Effects import echoとする。

2) 明示的な相対パスimport

モジュール Sound.Filters.vocoderから他のパッケージやモジュールをimportする際はfrom .. import Effects, from ..Effects import echo, from . import equalizerなどとする.

3) もちろん絶対パスimport も行えるので可読性などのためには絶対パスimportが良いのでは

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091203

2009-12-01

[]mecabの解析辞書にUniDicを使い始めた mecabの解析辞書にUniDicを使い始めた - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - mecabの解析辞書にUniDicを使い始めた - 雲雀は高く空を舞い mecabの解析辞書にUniDicを使い始めた - 雲雀は高く空を舞い のブックマークコメント

1) Uni-dicについて

あとで。

インストール方法

UniDicのページからバイナリがダウンロードできるのでそれを適当なディレクトリに置いて、mecabrcから指定するだけ。

mecabrcのディレクトリは僕の場合は /user/local/etc/mecabrc,UniDicは/usr/local/lib/mecab/dic/unidicにおいた.

mecabrcはにはdicdir=/usr/local/lib/mecab/dic/unidicを記述。 (複数辞書同時に使う場合はどうするんだろう…?)

ユーザ辞書への語句の追加

追加語句リストをcsvファイルで作成して登録する方法自体は,辞書によらずmecab-dict-indexを使うで共通.

例。

csvファイル

あちょっ,-1,-1,-3200,感動詞,めりも言葉,*,*,*,*,アチョッ,あちょっ,あちょっ,*,*,め,あちょっ,アチョッ
めりも,-1,-1,-3200,名詞,固有名詞,人名,*,*,*,メリモ,メリモ,めりも,メリモ,メリモ,固,めりも,メリモ
おはよっ,-1,-1,-3200,感動詞,一般,*,*,*,*,オハヨウ,御早う,おはよう,オハヨー,オハヨウ,和,おはよう,オハヨー
; 表層, 左側index, 右側index, コスト, 品詞, 小品詞1, 小品詞2, 小品詞3,*,*,*,*,*,.. 

sudo /usr/local/libexec/mecab/mecab-dict-index -d ./ -u merymo2.dic -f utf8 -t utf8 merymo2.csv

csvファイルで指定できる品詞はまだよく分かってない…。のであとで。

作成した辞書ファイルを使用するにはmecabrcdic/unidic/dicrc userdic = /usr/local/lib/mecab/dic/unidic/merymo2.dicを追加。

あと、pos-id.defを編集してsudo /usr/local/libexec/mecab/mecab-dict-indexをするとmatrix.binが上書きされちゃうんだけど、これはどうしたものなのかなぁ…。これもあとで。

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091201

2009-11-30

[]文字列をaとbとcとdで分割したい 文字列をaとbとcとdで分割したい - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - 文字列をaとbとcとdで分割したい - 雲雀は高く空を舞い 文字列をaとbとcとdで分割したい - 雲雀は高く空を舞い のブックマークコメント

文字列をseparatorで分割するときはStrings.split()メソッドを使う。

text = u'おはようございます。それでは行ってまいります。横浜は雲が出ているものの、晴れ間がのぞいています。'
seped = text.split('')
print seped
[u'おはようございます',
u'それでは行ってまいります',
u'横浜は雲が出ているものの、晴れ間がのぞいています'

文字列を複数の位置で分割したいときは?

  1. splitをループで使う
  2. 正規表現のre.split()メソッドを使う
text = u'おはようございます。それでは行ってまいります。横浜は雲が出ているものの、晴れ間がのぞいています。'
seped = re.split(u'。|、', text)
print seped
[u'おはようございます',
u'それでは行ってまいります',
u'横浜は雲が出ているものの'
u'晴れ間がのぞいています'

区切り文字を出力に含みたいときはpatternをグループ化すればおk

seped = re.split(u'(。|、)', text)

ScoskiblyScoskibly2018/01/29 00:45Micohex Acheter Du Cialis Au Canada [url=http://cialiorder.com]cialis[/url] Viagra Over The Counter Propecia Cost Over Time Cialis Bordeaux

LesSarkLesSark2018/04/09 04:01Shipped Ups Bentyl For Sale Real Viagra Sans En Avoir Besoin Sky Pharmacy Store [url=http://tadalaffbuy.com]where to buy cialis online safely[/url] Viagra Rezeptfrei Per Uberweisung

LesSarkLesSark2018/04/15 01:23How To Use Propecia Produit Plante Qui Remplace Tadalis Sx Soft Canine Cephalexin [url=http://cheapciali.com]cialis no prescription[/url] Order isotretinoin no rx with free shipping

KennethwefKennethwef2018/05/11 10:56kamagra 100mg oral jelly wirkung bei frauen
kamagra 100mg side effects
the kamagra store hoax
kamagra oral jelly side effects

KennethwefKennethwef2018/05/12 04:12kamagra 100mg tablets for sale usa
kamagra 100 chewable tablets
kamagra novi sad potencija
kamagra website reviews uk

JuniornomJuniornom2018/06/17 16:54viagra levitra cialis cost comparison
<a href="http://viagrapipls.com/">buy generic viagra</a>
viagra for women pink
<a href="http://viagrapipls.com/">buy generic viagra</a>
price comparison between viagra and cialis

JuniornomJuniornom2018/06/17 20:14viagra prices in us
<a href="http://viagrapipls.com/">buy generic viagra</a>
generic viagra cost now available
[url=http://viagrapipls.com/]buy generic viagra[/url]
brand viagra online australia

JaredSwowlJaredSwowl2018/06/19 06:10cialis 5mg price comparison
[url=http://cialisprod.com/]buy generic cialis[/url]
lowest price on generic cialis
<a href="http://cialisprod.com/">buy cialis</a>
viagra cialis levitra reviews

MichaelgluroMichaelgluro2018/06/19 19:45buy generic cialis online usa
<a href="http://justinpro.com/">cialis</a>
cialis vs viagra cost comparison
<a href="http://justinpro.com/">buy cialis</a>
cialis 20 mg how long does it take to work

DanieltusDanieltus2018/06/20 13:07erfahrungsbericht kamagra oral jelly wirkung
<a href="http://kamagraonl.com/">buy kamagra oral jelly</a>
kamagra now reviews
<a href="http://kamagraonl.com/">kamagra</a>
kamagra rendeles budapest

JaredSwowlJaredSwowl2018/06/21 09:08viagra naturale fatto in casa
<a href="http://amsboatyard.com/">viagra</a>
cialis vs viagra dosing
<a href="http://amsboatyard.com/">buy generic viagra</a>
viagra coupons samples 2017

MichaelgluroMichaelgluro2018/06/22 19:04viagra cialis compare
<a href="http://airvietnamairline.com/">buy cialis</a>
cialis brand name vs generic
[url=http://airvietnamairline.com/]buy generic cialis[/url]
comprar cialis generico no brasil

DanieltusDanieltus2018/06/23 01:23kamagra 100mg oral jelly price
<a href="http://kamagraonl.com/">buy kamagra oral jelly</a>
side effects of kamagra oral jelly
[url=http://kamagraonl.com/]buy kamagra oral jelly[/url]
super kamagra opinie forum

AntonJaivyAntonJaivy2018/06/28 07:12cialis soft tabs 20mg
[url=http://cialisgenericsa.com/]buy generic cialis[/url]
genericos de viagra y cialis
<a href="http://cialisgenericsa.com/">buy cialis online</a>
cialis manufacturer coupon 2018

FloydprulpFloydprulp2018/06/29 07:08kamagra oral jelly india manufacturer
<a href="http://kamagradyn.com/">kamagra 100mg</a>
cost of kamagra
<a href="http://kamagraonl.com/">kamagra oral jelly</a>
kamagra oral jelly for sale in usare

FloydprulpFloydprulp2018/07/01 20:36kamagra oral jelly review australia
[url=http://kamagradyn.com/]kamagra 100mg[/url]
kamagra oral jelly kaufen schweiz
<a href="http://kamagraonl.com/">kamagra oral jelly</a>
kamagra oral jelly 5gm sildenafil

AllanzetlyAllanzetly2018/07/02 00:46buy cheap cialis online uk
<a href="http://cialispaxl.com/">buy generic cialis</a>
prices for cialis 5mg
[url=http://cialispaxl.com/]cialis generic[/url]
cialis generico melhor preço

RobertAvasyRobertAvasy2018/07/13 22:19kamagra oral jelly forum hr
<a href="https://www.kamagrapos.com/">kamagra oral jelly</a>
kamagra in usa kaufen dundee health
<a href="https://www.kamagrapos.com/">kamagra jelly</a>
kamagra jelly reviews

CharleseduthCharleseduth2018/07/15 17:17viagra vs cialis vs levitra prices
<a href="http://viagrapipls.com/">generic viagra</a>
viagra cost vs cialis cost
[url=http://viagrapipls.com/]viagra generic[/url]
buy viagra uk next day delivery
http://viagrapipls.com/
reviews for female viagra

DonnieHokDonnieHok2018/07/17 05:15Gеt up tо $ 20,000 рer dау with our рrogrаm.
Wе are а tеаm of еxрeriеncеd рrоgrаmmеrs, wоrkеd more than 14 mоnths on this prоgrаm аnd nоw everything is rеаdy аnd everуthing wоrks рerfeсtly. Thе РаyPal system is vеry vulnerаble, instеad of nоtifying thе develореrs оf PaуРal abоut this vulnerаbilitу, we toоk аdvantagе оf it. We activеlу use our program fоr рersоnal еnrichment, tо show hugе аmоunts оf money оn our acсоunts, we will not. уou will not believе until yоu try аnd as it is nоt in оur intеrеst tо рrovе to you that sоmеthing is in уours. Whеn we realizеd thаt this vulnеrаbility саn bе usеd mаssivеly withоut consеquenсes, we dеcidеd tо help thе rеst оf the peoplе. Wе deсidеd nоt to inflate thе рricе оf this gоld рrоgrаm and put a verу low рrice tаg, onlу $ 550. In оrder fоr this рrоgram to be аvаilаble tо a large numbеr оf peорlе.
Аll the dеtаils оn оur blоg: http://www.yasni.pl/go.php?to=https://www.pinterest.com/pin/690387817853172731/

CharleseduthCharleseduth2018/07/17 10:47women in viagra commercial 2015
<a href="http://viagrapipls.com/">generic viagra</a>
viagra side effects how long
<a href="http://viagrapipls.com/">viagra generic</a>
reviews of viagra professional
http://viagrapipls.com/
viagra female commercial

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091130

2009-11-28

[]PythonからSQLite3への日付型変数の登録 PythonからSQLite3への日付型変数の登録 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - PythonからSQLite3への日付型変数の登録 - 雲雀は高く空を舞い PythonからSQLite3への日付型変数の登録 - 雲雀は高く空を舞い のブックマークコメント

PythonからSQLiteにデータを登録するに当たり,datetime.date型とdatetime.datetime型をISO日付形式,ISO タイムスタンプ形式に変換する適合関数がデフォルトで登録されている.それ以外の形式に,あるいはそれ以外の型を適切な型に変換して登録したいときには適当な適合関数を書いて登録すればよい。

import sqlite3
import datetime, time
sqlite3.connect(":memory:")
cur = con.cursor()

cur.execute("select ?", (datetime.datetime.now(),))
print(cur.fetchone()[0])
2009-11-28 11:56:02.498758



sqlite3の日付処理関数については以前にまとめたけど再び。

日付処理関数はstrftime, datetime, date, time, Juliandayがあって、このうち datetime, date, time, Juliandayはそれぞれstrftimeの特別な場合。


書式はstrftime(format, timestring, [modifier, ...])datetime(timestring, [modifier, ...])など。


modifierにutcを指定した場合は,与えられたtimestringをローカルタイムゾーンでの日時として解釈しUTCの日時に変換して表示する.ローカルタイムゾーンがJSTの場合はtimestringから9時間引かれた時間が返る.


逆にlocaltimeを指定した場合は与えられたtimestringをUTCでの日時として解釈しローカルタイムゾーンの日時に変換して表示する。ローカルタイムゾーンがJSTの場合はtimestringに9時間たされた時間が返る.




cur.execute("select date(?)", (datetime.datetime.now(),))
print(cur.fetchone()[0])

2009-11-28
cur.execute("select time(?)", (datetime.datetime.now(),))
print(cur.fetchone()[0])

11:59:48
cur.execute("select datetime(?)", (datetime.datetime.now(),))
print(cur.fetchone()[0])

2009-11-28 11:59:48
cur.execute("select datetime(?, 'utc')", (datetime.datetime.now(),))
print(cur.fetchone()[0])

2009-11-28 02:59:29
cur.execute("select datetime(?, 'localtime')", (datetime.datetime.now(),))
print(cur.fetchone()[0])

2009-11-28 20:59:11

RizalRizal2014/07/09 08:56I'm impressed by your writing. Are you a professional or just very knoewedgeabll?

LevonLevon2014/07/22 08:01A piece of <a href="http://stosri.com">erioutidn</a> unlike any other!

DianaDiana2014/07/28 07:15Holy Tolode, so glad I clicked on this site first! http://lczmzwdrs.com [url=http://tstikgdimx.com]tstikgdimx[/url] [link=http://qosuuplpkx.com]qosuuplpkx[/link]

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091128

2009-11-21

[]iPythonで日本語を表示する iPythonで日本語を表示する - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - iPythonで日本語を表示する - 雲雀は高く空を舞い iPythonで日本語を表示する - 雲雀は高く空を舞い のブックマークコメント

iPython 0.10(with Python 2.6.3.iPythonSciPyNumPyと一緒に入れた (or入った)でユニコード文字列がうまく取り扱えない例。

こちらにより修正しました。

s = u'あいうえお'
print s
<もじばけもじばけ>

ユニコード1文字(3byte)を1byteずつの3ユニコード文字列としてしまうことに由来するバグだとか。

修正方法は以下。iplib.pyの2200行目付近を以下のように修正。一行目をコメントアウトし、以降の文字列をユニコード文字列に変更するだけ。これで無事表示されるようになる。

-        source=source.encode(self.stdin_encoding)
-        if source[:1] in [' ', '¥t']:
-            source = 'if 1:¥n%s' % source
+       #source=source.encode(self.stdin_encoding)
+        if source[:1] in [u' ', u'¥t']:
+            source = u'if 1:¥n%s' % source

ちなみにiplib.pyportを使ってSciPyとかと一緒に入れた僕の場合は、/opt/local/var/macports/software/py26-ipython/0.10_0+scientific/opt/local/
Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/ipapi.py にありました。

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091121
テクノラティプロフィール