ページへ戻る
+ Links
印刷
Python/ファイルの読み書き
の編集 ::
NJF Wiki
xpwiki
:
Python
/
ファイルの読み書き
の編集
# mcbd9105 の編集
ページ内容:
*ファイルのオープンとクローズ [#mcbd9105] ファイルのオープンは「open」を使います。 この操作によって、今からどのファイルをどのようにあつかうかが決まり、そのファイルを表すオブジェクトが取得できます。 f = open("test.txt","r") 第一引数がファイル名、第二引数が読み込みモードです。第二引数は以下の値を取ります。 |読み込みモード名|意味| |r|読み込み専用| |w|書き込み専用| |a|追記| |r+|読み書き両方| |省略|読み込み専用(r)| この中でも特に「w」は元のファイルが消えて最初からファイルが作り直しになるので注意してください。 文字コード指定で開くには「codecs.open」を使います。 import codecs f = codecs.open('test01.txt', 'r','utf-8') こうすると読み込んだ文字列がunicode型になっています。 普通のopenだとstr型で読み込まれるため、それをunicodeに変換する手間が省けます(Python ver2系)。 ファイルのクローズは「close」を使います。 f.close() Pythonのプログラム自体が終了すると一緒にファイルもたいてい自動でクローズされます。しかし、ファイルを一度に開ける数には制限があります。ループの中などでcloseを忘れて大量にファイルを開くとエラーが発生することもあり、テストで少ないファイルを開いているときは大丈夫だったのに、いざ本番ではエラーになるといった、やっかいなバグの原因になることもあります。ファイルを使い終わったら習慣的に必ずcloseしましょう。 クローズしたファイルはまたオープンするまで使えません。クローズしたかどうかは「closed」で確認できます。 if f.closed: print "closed!" 例外が発生したりしても必ず自動でcloseしてくれる記法として、「with」を使う方法もあります。 with open('test.txt', 'r') as f: #何か処理 こちらの方が安全なので、積極的に使っていくと良いでしょう。 複数ファイルを開くときには with open('test01.txt', 'w') as f1, open('test02.txt','w') as f2: #何か処理 と列挙できます。しかし、オープンやクローズのタイミングをファイルによって変える必要があるときには、このように一つにまとめられないのでwithを使うとインデントが深くなって見にくくなってしまいます。 固定で数個のファイルを開くならwith、たくさんのファイルをあつかったり、個数が決まっていない場合はopen/closeを使うなどと使い分けをすると良いでしょう。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
「大阪」の読みがな?(ひらがなで)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する