2017-10-11 5 views
1

filehandle = open("example.bin", "wb")を開いて作成する方法はありますか?既存のファイルでこのファイルを拡張しますか?ファイルをPythonの新しいファイルにペーストする

私はそうのようにリストの機能から.extendのようなもの を考える:

filehandle = open("example.bin", "wb") 
filehande.extend(existing_file.bin) 

私は既存のファイルを読み込み、変数/リストにそれを書いて、それを「貼り付ける」ことができることを知っていますこれはoriginalotherの内容を追加します

+0

ファイルハンドルはファイルオブジェクトであり、リストではありません – Harsha

+0

私の質問を2回読んだら、同様の方法について質問しています。 – Nico

+0

'cat file1 file2> file3'端末で実行します。 –

答えて

2
with open('original', 'a') as out_file, open('other', 'r') as ins_file: 
    out_file.write(ins_file.read()) 

新しいファイルが、イムこのような容易なオプションがあるかどうか好奇心...。バイナリデータを扱う場合は、それぞれのモードをabrbに変更することができます。

ファイルの内容が大きい場合はdo it in chunksでも可能です。

+1

これは 'original'の内容を' other'で実際に__replace__します。既存のファイルaを書き込む( "w")モードで開くと、ファイルの内容が即座に消去されます。既存のファイルをappend( "a")モードで開くには、明らかに追加します。 –

+1

@ brunodesthuilliers良いキャッチ、固定。 – blakev

+0

@blakevこれは私のためにうまく動作します。ありがとう – Nico

1

ファイルオブジェクトをマージすることはできません。あなたは、各ファイルのリストを作成し、

files_combined = list(open("example.bin", "wb")) + list(open("file_2"))

file_1に追加file_2内のすべての行でリストを返しますが、新しいリストに予定して拡張することができます。新しいファイルに保存するか、ファイルの1つを上書きすることができます。

関連する問題