2017-10-11 132 views
1

有沒有辦法打開/創建filehandle = open("example.bin", "wb")並使用現有文件擴展此文件?將文件粘貼到python中的新文件中

我想 有點像.extend從功能列表,像這樣:

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

我知道我可以讀取現有的文件和寫一個變量/列表和「粘貼」,它在新的文件,但即時通訊好奇,如果有這樣的一個更容易的選擇...

+0

文件句柄只是一個文件對象,而不是一個列表 – Harsha

+0

我知道,如果你兩次閱讀我的問題,我問了一個類似的方法。 – 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()) 

這將在other內容附加到original。如果您正在處理二進制數據,則可以將每個模式更改爲abrb

如果文件內容很大,你也可以do it in chunks

+1

這實際上將''original'的內容替換爲'other'。在寫入(「w」)模式下打開現有文件立即擦除文件的內容。顯然,要附加到要添加(「a」)模式下打開的現有文件。 –

+1

@brunodesthuilliers好抓,固定。 – blakev

+0

@blakev這對我來說工作得很好。謝謝 – Nico

1

您不能合併文件對象。可以使每個文件的列表和擴展他們

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

將返回一個列表的所有在file_2附加file_1線,但在一個新的列表。然後,您可以將其保存到新文件,或覆蓋其中一個文件。

相關問題