- ソース を表示
- Python/ファイルの読み書き へ行く。
4: 2017-06-13 (火) 10:01:07 njf | 現: 2017-09-05 (火) 14:09:53 njf | ||
---|---|---|---|
Line 45: | Line 45: | ||
f.close() | f.close() | ||
- | Pythonのプログラム自体が終了すると一緒にファイルもたいていクローズされますが、closeを忘れて大量にファイルを開くとエラーが発生したりするので、ファイルを使い終わったら忘れずにcloseしましょう。 | + | Pythonのプログラム自体が終了すると一緒にファイルもたいてい自動でクローズされます。しかし、ファイルを一度に開ける数には制限があります。ループの中などでcloseを忘れて大量にファイルを開くとエラーが発生することもあり、テストで少ないファイルを開いているときは大丈夫だったのに、いざ本番ではエラーになるといった、やっかいなバグの原因になることもあります。ファイルを使い終わったら習慣的に必ずcloseしましょう。 |
クローズしたファイルはまたオープンするまで使えません。クローズしたかどうかは「closed」で確認できます。 | クローズしたファイルはまたオープンするまで使えません。クローズしたかどうかは「closed」で確認できます。 | ||
Line 101: | Line 101: | ||
# -*- 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() | ||
Line 113: | Line 113: | ||
*終わりに [#k383a515] | *終わりに [#k383a515] | ||
- | ここではテキストファイルを中心としたPythonでのファイルの読み書きをご紹介しましたが、Pythonではバイナリファイルなどもほぼ同様にして扱えます。ただし大量のバイナリデータを扱うなどの場合はCやC++といった言語を使った方が処理が速いので良いかも知れません。 | + | ここではテキストファイルを中心としたPythonでのファイルの読み書きをご紹介しましたが、Pythonではバイナリファイルなどもほぼ同様にして扱えます。しかし、少し工夫が必要で、また大量のバイナリデータを扱うなどの場合はCやC++といった言語を使った方が処理が速いので良いかも知れません。 |
データの量が多くなったり、データ構造が複雑な場合は最初に書いたようになるべく他のモジュールと組み合わせるのがおすすめです。 | データの量が多くなったり、データ構造が複雑な場合は最初に書いたようになるべく他のモジュールと組み合わせるのがおすすめです。 | ||
独自形式のファイルなどを作ろうとすると、意外に大変です。学習を目的としているので無ければ、少なくとも個人レベルでは避けた方が無難です。 | 独自形式のファイルなどを作ろうとすると、意外に大変です。学習を目的としているので無ければ、少なくとも個人レベルでは避けた方が無難です。 |
- Python/ファイルの読み書き のバックアップ一覧
- Python/ファイルの読み書き のバックアップ差分(No. All)
- 1: 2016-12-30 (金) 06:10:40 njf
- 2: 2016-12-30 (金) 08:06:32 njf
- 3: 2017-01-01 (日) 06:17:28 njf
- 4: 2017-06-13 (火) 10:01:07 njf
- 現: 2017-09-05 (火) 14:09:53 njf
ぺージ情報 | |
---|---|
ぺージ名 : | Python/ファイルの読み書き |
ページ別名 : | 未設定 |
ページ作成 : | njf |
閲覧可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
編集可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
Counter: 2698,
today: 3,
yesterday: 0