4: 2017-06-13 (火) 10:01:07 njf |
現: 2017-09-05 (火) 13:09:53 njf |
| f.close() | | f.close() |
| | | |
- | Pythonのプログラム自体が終了すると一緒にファイルもたいていクローズされますが、closeを忘れて大量にファイルを開くとエラーが発生したりするので、ファイルを使い終わったら忘れずにcloseしましょう。 | + | Pythonのプログラム自体が終了すると一緒にファイルもたいてい自動でクローズされます。しかし、ファイルを一度に開ける数には制限があります。ループの中などでcloseを忘れて大量にファイルを開くとエラーが発生することもあり、テストで少ないファイルを開いているときは大丈夫だったのに、いざ本番ではエラーになるといった、やっかいなバグの原因になることもあります。ファイルを使い終わったら習慣的に必ずcloseしましょう。 |
| | | |
| クローズしたファイルはまたオープンするまで使えません。クローズしたかどうかは「closed」で確認できます。 | | クローズしたファイルはまたオープンするまで使えません。クローズしたかどうかは「closed」で確認できます。 |
| | | |
| # -*- coding: utf-8 -*- | | # -*- coding: utf-8 -*- |
| + | |
| f = open('test01.txt', 'a') | | f = open('test01.txt', 'a') |
| lines = [] | | lines = [] |
| + | |
| for i in range(10): | | for i in range(10): |
| lines.append("テスト%dです\n" % i) | | lines.append("テスト%dです\n" % i) |
| + | |
| f.writelines(lines) | | f.writelines(lines) |
| f.close() | | f.close() |
| *終わりに [#k383a515] | | *終わりに [#k383a515] |
| | | |
- | ここではテキストファイルを中心としたPythonでのファイルの読み書きをご紹介しましたが、Pythonではバイナリファイルなどもほぼ同様にして扱えます。ただし大量のバイナリデータを扱うなどの場合はCやC++といった言語を使った方が処理が速いので良いかも知れません。 | + | ここではテキストファイルを中心としたPythonでのファイルの読み書きをご紹介しましたが、Pythonではバイナリファイルなどもほぼ同様にして扱えます。しかし、少し工夫が必要で、また大量のバイナリデータを扱うなどの場合はCやC++といった言語を使った方が処理が速いので良いかも知れません。 |
| | | |
| データの量が多くなったり、データ構造が複雑な場合は最初に書いたようになるべく他のモジュールと組み合わせるのがおすすめです。 | | データの量が多くなったり、データ構造が複雑な場合は最初に書いたようになるべく他のモジュールと組み合わせるのがおすすめです。 |
| | | |
| 独自形式のファイルなどを作ろうとすると、意外に大変です。学習を目的としているので無ければ、少なくとも個人レベルでは避けた方が無難です。 | | 独自形式のファイルなどを作ろうとすると、意外に大変です。学習を目的としているので無ければ、少なくとも個人レベルでは避けた方が無難です。 |