43600


ファイルに最後の変数しか書き込めないです。dictionary変数に

[code]

    {"Alphabet":{"A":{"a1_0":{0:100,1:120}},"a1_1":{0:150,1:130},"a1_2":{0:140,1:110}},{"B":{"b1_0":{0:2,1:3}},{"b1_1":{0:"4",1:"5"}}},・・・・{"Z":{"z1_0":{0:"90",1:"80"}},{"z1_1":{0:"40",1:"50"}}}}
    
[/code]

という辞書が入っています。

[code]

    for key,value in dictionary.items():
        x = key
        for ky,vl in value.items():
            y = ky
            for k, v in vl.items():
                z =k+ v
    
                s = "\n".join([x, y, z])
                f = open('data.txt', 'w')
                f.write(s)
                f.close()
    
[/code]

とかいて、`x`＆`y`＆`z`変数の中身をdata.txtに書き込みたいです。  
しかし、今`{"z1_1":{0:"40",1:"50"}`のdictionary変数の一番最後の要素しかファイルに書き込めませんでした。for文の中にあるのでファイルオープンで何回も書き込めると思ったのですが、なぜ書き込めないのでしょうか？


CC BY-SA 3.0
2018-04-27T06:20:16.507
43599
2018-04-27T06:38:34.797
2018-04-27T06:35:48.910
49
28336
question
python
ファイルに最後の変数しか書き込めない


> 一番最後の要素しかファイルに書き込めませんでした。

実際のプログラム動作は「同じファイルに何度も上書き保存」しています。その結果として、最後の要素しか残ってないように見えています。

所望の動作に修正するには、ファイルオープン[`open`](https://docs.python.jp/3/library/functions.html#open)時に上書きモード(`w`)から追記モード(`a`)へ変更する必要があります。

[code]

    # f = open('data.txt', 'w')
    f = open('data.txt', 'a')
    
[/code]


CC BY-SA 3.0
2018-04-27T06:38:34.797
43600
2018-04-27T06:38:34.797
49
43599
answer