盛大な独り言日記・自分用メモ2010.11.17~
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
文字コードのこと色々
windows標準の文字コードはcp932だけど
pythonは基本的にunicodeで正常に動作する。
特に日本語文字列を使う場合は文字コードをunicodeに変換しないと文字化けしたりエラーが起こったりする。
スクリプトの中であらかじめ変換しておける時は、文字列の前にuをつければいい
str="ぱいそん" → str=u"ぱいそん"
後から文字列を入力→入力内容を取得してごにょごにょしたい時は、
str = unicode(文字列の変数名,'文字列の元の文字コード')
と書けばstrに、unicode変換した文字列が入る。
PR
windows標準の文字コードはcp932だけど
pythonは基本的にunicodeで正常に動作する。
特に日本語文字列を使う場合は文字コードをunicodeに変換しないと文字化けしたりエラーが起こったりする。
スクリプトの中であらかじめ変換しておける時は、文字列の前にuをつければいい
str="ぱいそん" → str=u"ぱいそん"
後から文字列を入力→入力内容を取得してごにょごにょしたい時は、
str = unicode(文字列の変数名,'文字列の元の文字コード')
と書けばstrに、unicode変換した文字列が入る。
pyファイルで米事案のサンプルいじったら動いた。これで都道府県あてゲームとかできそうですね。
当てるのプログラムの側だけど…
それをさっそくpy2exeでexeに変換してみましたが、やっぱりただ変換するだけじゃ動かなかったです
sys.argvとかargcとかの表示まではできたけど、それ以降の解析を使ったりとか元のプログラムの機能を呼び出せずに固まる。
BeautifulSoupとか何も考えずに入れてみたけど、それとの連携がうまくいってないような。
とりあえず次やるときはのこりのpyファイルも全部exeにして見たりして試す。
全部じゃなくてもあのmorなんとかだけでも…。
当てるのプログラムの側だけど…
それをさっそくpy2exeでexeに変換してみましたが、やっぱりただ変換するだけじゃ動かなかったです
sys.argvとかargcとかの表示まではできたけど、それ以降の解析を使ったりとか元のプログラムの機能を呼び出せずに固まる。
BeautifulSoupとか何も考えずに入れてみたけど、それとの連携がうまくいってないような。
とりあえず次やるときはのこりのpyファイルも全部exeにして見たりして試す。
全部じゃなくてもあのmorなんとかだけでも…。
文字列の受け渡し方法。
EXEファイルのソース(.c):
void main(int argc, char * argv[]) {
printf("%d",argc); ....伺かから渡した数値データを表示
printf("%s",argv[1]); ....伺かから渡した文字列データを表示
}
伺かからこのEXEを呼びだすとき、伺かから渡す物は、数値はargc,文字列はargvの[1]に入る。というか入ってた。
[0]にはexeファイルが入っている階層の情報が入ってた。[2][3]は試したけど空。
引数の所にポインタがあるとどうなるとかよくわかってないけどとりあえず動いたから今はもう考えないぞ…!
これで単純な受け渡しが出来た!のでまためかぶを使ったプログラムで受け渡しを確認する。
同じ事がπ損で出来るかも試す。そしたらフィルタも使えるだろうか。
あ、あとproxy.dllとexeファイルは階層をそろえた方がいいかもしれない。
今のところkisと同じ階層にsaoriフォルダを作って、その中にexeもproxyもまとめて入れている。
EXEファイルのソース(.c):
void main(int argc, char * argv[]) {
printf("%d",argc); ....伺かから渡した数値データを表示
printf("%s",argv[1]); ....伺かから渡した文字列データを表示
}
伺かからこのEXEを呼びだすとき、伺かから渡す物は、数値はargc,文字列はargvの[1]に入る。というか入ってた。
[0]にはexeファイルが入っている階層の情報が入ってた。[2][3]は試したけど空。
引数の所にポインタがあるとどうなるとかよくわかってないけどとりあえず動いたから今はもう考えないぞ…!
これで単純な受け渡しが出来た!のでまためかぶを使ったプログラムで受け渡しを確認する。
同じ事がπ損で出来るかも試す。そしたらフィルタも使えるだろうか。
あ、あとproxy.dllとexeファイルは階層をそろえた方がいいかもしれない。
今のところkisと同じ階層にsaoriフォルダを作って、その中にexeもproxyもまとめて入れている。
①ここ(http://www.py2exe.org/)のサイトからpy2exeをダウンロード→インストール
言われた通りやってればとりあえず平気そう。
②変換気の役割を果たすプログラムを作る。
名前はなんでも。例)makeexe.py
内容は最低これだけでいいらしい↓
from distutils.core import setup
import py2exe
setup(console=['変換したいファイルの名前.py'])
コンソールアプリならとりあえずよさそう。
③コマンドプロンプトで、
>python makeexe.py py2exe
と書いて実行する。
④元のpyファイルがあるフォルダにdistというフォルダが生成され、その中にexeファイルが出来る。
参考にしたのはここ→http://www.xucker.jpn.org/pc/pythonexec.html
これで、pythonで作ったプログラムをSAORIで呼び出せるようになりました。
言われた通りやってればとりあえず平気そう。
②変換気の役割を果たすプログラムを作る。
名前はなんでも。例)makeexe.py
内容は最低これだけでいいらしい↓
from distutils.core import setup
import py2exe
setup(console=['変換したいファイルの名前.py'])
コンソールアプリならとりあえずよさそう。
③コマンドプロンプトで、
>python makeexe.py py2exe
と書いて実行する。
④元のpyファイルがあるフォルダにdistというフォルダが生成され、その中にexeファイルが出来る。
参考にしたのはここ→http://www.xucker.jpn.org/pc/pythonexec.html
これで、pythonで作ったプログラムをSAORIで呼び出せるようになりました。
pythonで(文字コード:SHIFT-JIS)で書いて、py2exeでexeファイルに変換すると
特に文字化けせず形態素解析した結果が表示されるexeファイルが作れました。
pythonさん+文字化けで検索すると、UTF-8にしろっていろんなところに書いてあるのですが、
あれはpythonのコンソールで動かすときの話なのかな…。
まだpythonとめかぶかませるところまでだったので、ベイジアンフィルタはいじってないです。
家帰って余力が残ってたらやりたいのですが、pythonにmecabくっつけるときに色々失敗していたので、
どれをどうしたかほとんど覚えてない…。とりあえずいじったはずのファイルだけ自宅に転送してみる。
pythonは今入れるなら日本語版にこだわらなくても、普通に通常版の新しいものを入れたほうがいいみたい。
特に文字化けせず形態素解析した結果が表示されるexeファイルが作れました。
pythonさん+文字化けで検索すると、UTF-8にしろっていろんなところに書いてあるのですが、
あれはpythonのコンソールで動かすときの話なのかな…。
まだpythonとめかぶかませるところまでだったので、ベイジアンフィルタはいじってないです。
家帰って余力が残ってたらやりたいのですが、pythonにmecabくっつけるときに色々失敗していたので、
どれをどうしたかほとんど覚えてない…。とりあえずいじったはずのファイルだけ自宅に転送してみる。
pythonは今入れるなら日本語版にこだわらなくても、普通に通常版の新しいものを入れたほうがいいみたい。