回答編集履歴
1
例を追加
answer
CHANGED
@@ -1,4 +1,36 @@
|
|
1
1
|
yugokinoさんがやりたいことは、書き換えではなく挿入のように思います。
|
2
2
|
ファイルの途中を書き換えることはできますが、そこを書き換えると言うことは、既存の部分を消すことになります。
|
3
3
|
|
4
|
-
挿入するのであれば、ファイルを読み込み、同じ名前のファイルを新規に作成して、読み込んだデータの途中までを出力し、挿入したい部分を出力し、残りの部分を出力します。
|
4
|
+
挿入するのであれば、ファイルを読み込み、同じ名前のファイルを新規に作成して、読み込んだデータの途中までを出力し、挿入したい部分を出力し、残りの部分を出力します。
|
5
|
+
```python
|
6
|
+
with open('sample.txt', 'r') as f:
|
7
|
+
data = f.readlines()
|
8
|
+
|
9
|
+
print(data)
|
10
|
+
insert = ['pear\n', 'grape\n']
|
11
|
+
ipoint = 2
|
12
|
+
with open('sample.txt', 'w') as f:
|
13
|
+
for i in data[:ipoint]:
|
14
|
+
f.write(i)
|
15
|
+
for i in insert:
|
16
|
+
f.write(i)
|
17
|
+
for i in data[ipoint:]:
|
18
|
+
f.write(i)
|
19
|
+
|
20
|
+
```
|
21
|
+
みたいな感じです。
|
22
|
+
実行結果は以下です。
|
23
|
+
```shell
|
24
|
+
> type sample.txt
|
25
|
+
apple
|
26
|
+
banana
|
27
|
+
orange
|
28
|
+
> python insert.py
|
29
|
+
['apple\n', 'banana\n', 'orange\n']
|
30
|
+
> type sample.txt
|
31
|
+
apple
|
32
|
+
banana
|
33
|
+
pear
|
34
|
+
grape
|
35
|
+
orange
|
36
|
+
```
|