E71:PyS60でファイル読み込み等々
Last-modified: 2013-08-24 (土) 02:14:21 (3899d)
Top / E71:PyS60でファイル読み込み等々
E71:PyS60でファイル読み込み等々 †
基本的なことですが、ファイルの読み書きをこれまでやってなかったので、やってみるコーナーです。
ファイルアクセス方法 †
Python for S60を使ったファイルアクセスは、LinuxやWindowなどのプラットフォームと同様で、open関数を使います。たとえば、こんな感じです。
f = open("c:/temp/test.txt",'r')
open関数の第一引数は、見てのとおりファイル名で、第二引数はファイルアクセスモードになります。
- r : 読み込みモード
- w : 書き込みモード
- r+ : 読み書きモード
「rw」ではなく「r+」であることに注意!
また、ファイルセパレータとして、「/」(スラッシュ)が使えます。「\」(バックスラッシュ)を使いたい場合は、次のようにします。
f = open("c:\\temp\\test.txt",'r')
このコマンドで、読み込みが成功するとファイルオブジェクトが返却されます。
ちなみに、PyS60では、デフォルトのカレントディレクトリは読み取り専用のZドライブって、「Programming with Python for Series 60 Platform」(FORUM NOKIAのドキュメント) に書いてあるんですが、自分のE71だと違う場所だったんだよな~笑
使ってみる †
さてさて、早速使ってみましょう。
あらかじめ、「c:\temp\」の下に「test.txt」ってファイルを作成しときます。
して、テキストファイルの中に、「Test」って入力し、保存しときます。
Python 2.2.2 (#0, Nov 7 2008, 14:24:30) [C] on symbian_s60 Type "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> f = open("C:/temp/test.txt",'r+') ←1 >>> f.readline() ←2 'Test' >>> >>> f.write(u"test write") ←3 >>> f.flush() ←4 >>> f.close() ←5 >>> >>> f = open("C:/temp/test.txt",'r+') ←6 >>> >>> f.readline() ←7 'Testtest write' >>> >>> f.close() ←8 >>>
各行を簡単に解説
- 説明のとおり、読み書きモードでファイルを開きます。
- readlineメソッドで、内容を読み出します。
次の行に出力されている「'Test'」という文字が、ファイルから読み出された内容となります。 - writeメソッドで「test write」という文字をファイルに書き込みます。
- flushメソッドでバッファをフラッシュします。
- いったんファイルを閉じます。
- もう一度開きます。
- もう一度readlineメソッドで読み込みます。
すると、先ほどwriteメソッドの引数として渡した文字列がファイルから読み込まれたことが確認できます! - ファイルを閉じます。
※ファイルオブジェクトの詳細については以下のリンクを参照のこと
- Pythonリファレンスマニュアル
http://www.python.jp/doc/release/lib/bltin-file-objects.html
ファイルシステムへのアクセス †
簡単だったので、やったことだけ簡単に残します。
Python 2.2.2 (#0, Nov 7 2008, 14:24:30) [C] on symbian_s60 Type "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> import os >>> os.getcwd() ←1 'E:\\Private\\2000b1a5\\' >>> os.listdir(os.getcwd()) ←2 ['backup_registration.xml', 'default.py'] >>>
- カレントディレクトのパスを取得する関数だが、取得された値は
'E:\\Private\\2000b1a5\\'
だった笑 - カレントディレクトリのファイルリストを取得
このほかに、chdir(パス)とか、mkdir(パス)とかの関数があります。
詳細はライブラリリファレンスをosの項を参照のこと