メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2008年3月3日月曜日

[Python][お勉強] 「Pythonチュートリアル」を読む(13) -- 入出力

今日もPythonお勉強。

今日からしばらく時間が取れなさそう・・・。

で、今日は7章突入。


str(), repr()
あらゆる値を文字列に変換する。
str()は人間が理解しやすいように、repr()はインタプリタが理解できる表現を生成することを目的にしている。

zfill()
数字からなる文字列の左にゼロをパディングする。


>>> '123'.zfill(5)
'00123'
>>>
 

な感じ。

%演算子
Cのprintf書式に似たものをサポートする。
複数の書式指定がある場合は、右辺にはタプルを指定する。

>>> "%d + %d = %d" % (10, 1, 11)
'10 + 1 = 11'
>>>
 

な感じ。

また書式指定中にディクショナリのキーを埋め込むことができる。
その際は右辺にはディクショナリを指定する。

>>> "%(1)d + %(2)d = %(3)d" % {"3":11, "1":10, "2":1}
'10 + 1 = 11'
>>>
 



ファイルの読み書き
ファイルの読み書きは、以下の順序で行う。
  • open
  • read/write
  • close
open()
ファイルをopenする。ファイルオブジェクトを返す関数で、2つの引数をもって使うのが普通。

>>> f = open("/tmp/erer.txt", "w")
 

/tmp/erer.txtを書込みモードでオープンしている。

読込モードでオープンする場合は"w"ではなく"r"を指定する。

>>> f = open("/tmp/erer.txt", "r")
 




read()
ファイルの中身を読み込む。
第一引数にはサイズを指定する。

>>> f = open("/tmp/erer.txt", "r")
>>> f.read(10)
'This is a '
>>> f.read(10)
'pen.\nJack '
>>> f.read(10)
'has a bat '
>>> f.read(10)
'and two ba'
>>> f.read(10)
'lls.\n'
>>> f.read(10)
''
>>>


上記は10バイトづつファイルを読み込んでいる。
ファイルの終わりに達すると、readは空文字列を返す。

readline()
ファイルから1行読みこむ。


>>> f = open("/tmp/erer.txt", "r")
>>> f.readline()
'This is a pen.\n'
>>> f.readline()
'Jack has a bat and two balls.\n'
>>> f.readline()
''
>>>
 

な感じ。


readlines()
ファイルの全ての行が入ったリストを返す。


>>> f = open("/tmp/erer.txt", "r")
>>> f.readlines()
['This is a pen.\n', 'Jack has a bat and two balls.\n']
>>> f.readlines()
[]
>>>
 

な感じ。



write()
文字列をファイルに書き込む。

>>> f = open("/tmp/erer.txt", "w")
>>> f.write("Hello, World\n")
 

な感じ。



tell()
現在位置を返す。

>>> f.tell()
13L
 

現在13バイト目。



seek()
現在位置を変更する。

>>> f.seek(5)
>>> f.tell()
5L
>>> f.seek(1,1)
>>> f.tell()
6L
>>>
 

な感じ。

close()
ファイルオブジェクトの使用を終える。

>>> f.close()
>>>
 




pickleモジュール
Pythonでのオブジェクトをシリアライズする。
ファイルfにリストLを保存するには以下のようにする。

>>> f = open("/tmp/erer.txt", "w")
>>> L = [1,2,3,4,5]
>>> import pickle
>>> pickle.dump(L, f)
>>> f.close()
>>>


すると・・・、
/tmp/erer.txtの中身は、

$ cat /tmp/erer.txt
(lp0
I1
aI2
aI3
aI4
aI5
a.


な感じに・・・。

これを読み込むには・・・

>>> import pickle
>>> f = open("/tmp/erer.txt", "r")
>>> L = pickle.load(f)
>>> L
[1, 2, 3, 4, 5]
>>>
 

などとする。





おしまい。
.

0 コメント: