質問: ### pythonでcsvファイルの中身を一部分だけ上書きしたい 例えば a.csv 1,2,3 4,5,6 7,8,9 0,0,0 1,1,1 2,2,2 というcsvがあったとして,最初の 1,2,3 4,5,6 7,8,9 だけを 9,8,7 6,5,4 3,2,1 と上書きしたいときはどのようなコードを書けばよいですか? ### 発生している問題・エラーメッセージ ``` a.csv 9,8,7 6,5,4 3,2,1 0,0,0 1,1,1 2,2,2 とならずに, a.csv 9,8,7 6,5,4 3,2,1 だけ残ってファイルごと上書きされる ``` ### 該当のソースコード ``` filename='a.csv' f=open(filename,'w',newline='') writer=csv.writer(f) for i in range(3): for j in range(3): writer.writerow([s[i,j,0],s[i,j,1],s[i,j,2]]) ``` ### 補足情報 該当のコードの's'は実際私が使用している配列の名前なので,無視してください.
回答: ファイルを一部分だけ書き換えるというのは実質上無理なので、 ・ファイルを読み込み ・別の名前のファイルを作り、それに書き込み、書き換える ・元のファイルを削除 ・書き込んだファイルを元ファイルの名前にリネーム というのでどうぞ。 万全を期すなら、元ファイルを削除しないで、バックアップファイルとしてリネームしときましょう