« まだ秋なのかな、やっと秋なのかな | トップページ | 国際通話、国内通話とも「+国番号..」で発信可能になった »

2010年12月 1日 (水)

[Python S60 2.0.0] sysリロード後の注意点

2010-12-01(水)晴れ

 今まで、[Python S60 2.0.0]で sys.setdefaultencoding('utf-8')  を実行させる方法を探ってきました。先日の記事で、 sys のリロードを行うことで、何とか実行させることが出来ました。しかし、 sys のリロードを行った場合、注意点が有ることが分かりました。

 先日の記事「[Python S60 2.0.0] sys.setdefaultencoding('utf-8') 実行の件2

注意点:
 sys のリロードを行うと、その後はprint() 関数で画面にテキストを表示させることが出来ません。これは、Python 1.4.5 、 Python 2.0.0 とも同じです。多分、何かの再設定 (例えば (sys.stdout とかそれに類する機能になにか再設定) が必要なのかもしれません。
 ちょっと勉強不足で、まだ分かりません。

 なお、ファイルへの書き込みとか、appuifw の Text() で画面に表示させることは出来ますので、実際作成するスクリプト上では問題にはなっていません。

 以下、例を挙げてみます。

---- 例1 ---------------------
# -*- coding:utf-8 -*-

import sys
print 'aa'
reload(sys)
print 'bb'
-------------------------------

 例1を実行すると、'aa'は表示されますが、'bb'は表示されません。

Ssce0078 'bb'が出力されていません。

 ちょっと見た目には、reload(sys)の実行でダウンしているように見えますが、ファイルへの書き込みをしてみると、後のステップも実行されていることが分かります。

---- 例2 ------------------
# -*- coding:utf-8 -*-

import sys
print 'aa'
reload(sys)
F=open('e:\\000test.txt', 'w')
F.write(u'bb')
F.close()
-------------------------------

Ssce0079  例2の実行結果のファイル内容です。

----- 例3 ---------------------
# -*- coding:utf-8 -*-

import sys
print 'aa'
reload(sys)
F=open('e:\\000test.txt', 'w')
for x in sys.path:
    F.write(unicode(x)+u'\n')
F.close()
-------------------------------

 例3で、リロード後のsys.pathを見てみましたが、実行前と変化はありませんでした。sys.pathに関しては考慮は不要みたいです。

Ssce0080

 とりあえず勉強した(判明した)内容でした。

 

|

« まだ秋なのかな、やっと秋なのかな | トップページ | 国際通話、国内通話とも「+国番号..」で発信可能になった »

Python」カテゴリの記事

アプリケーション」カテゴリの記事

携帯電話」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/513620/50175021

この記事へのトラックバック一覧です: [Python S60 2.0.0] sysリロード後の注意点:

« まだ秋なのかな、やっと秋なのかな | トップページ | 国際通話、国内通話とも「+国番号..」で発信可能になった »