回答編集履歴
4
微修正
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
という過程が必要になり、
|
22
22
|
|
23
|
-
ファイルが大きくなる程、無駄なファイルの入出力
|
23
|
+
ファイルが大きくなる程、無駄なファイルの入出力も大きくなります。
|
24
24
|
|
25
25
|
|
26
26
|
|
3
誤った説明であったため訂正
test
CHANGED
@@ -6,11 +6,15 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
-
|
9
|
+
- 一時的に別ファイルに全内容を書き出します。(追記)
|
10
10
|
|
11
|
-
-
|
11
|
+
- 指定行までを数えながら毎行読み込んで、~~読み飛ばし~~ 書き出し
|
12
12
|
|
13
|
+
- 該当行を書き込む
|
14
|
+
|
13
|
-
- 残りの行を
|
15
|
+
- 残りの行を書き込む
|
16
|
+
|
17
|
+
- 最後にファイルをリネーム
|
14
18
|
|
15
19
|
|
16
20
|
|
2
キーワードを太字に
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
行指向のテキストファイルの場合 (シーケンシャル・アクセス)
|
5
|
+
行指向のテキストファイルの場合 (**シーケンシャル・アクセス**)
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
データが固定長のバイナリファイルであれば、(ランダム・アクセス)
|
35
|
+
データが固定長のバイナリファイルであれば、(**ランダム・アクセス**)
|
36
36
|
|
37
37
|
例えば、レコードの最大値を決めておくと、読み出し位置が計算で求まるので
|
38
38
|
|
1
説明補足
test
CHANGED
@@ -56,8 +56,12 @@
|
|
56
56
|
|
57
57
|
----
|
58
58
|
|
59
|
-
書き出すデータが少量なら、readlines()で全ての行を読込んで、
|
59
|
+
他の簡易な方法として、書き出すデータが少量なら、readlines()で全ての行を読込んで、
|
60
60
|
|
61
|
-
該当行を変更した後にファイル全体を書き出し等でも良いですが、
|
61
|
+
該当行を変更した後にファイル全体を書き出し等でも良いですが、メモリにデータを読み込む為、
|
62
|
+
|
63
|
+
データが大きくなると当然占有メモリも大きくなります。
|
64
|
+
|
65
|
+
|
62
66
|
|
63
67
|
データの規模が大きくなる場合は、sqlite3 等のデータベースの利用がお勧めです。
|