Python 将二进制文件附加到另一个二进制文件
我想用最近创建的二进制文件附加以前编写的二进制文件。 本质上是合并它们。这是我正在使用的示例代码:Python 将二进制文件附加到另一个二进制文件,python,python-2.7,append,binaryfiles,Python,Python 2.7,Append,Binaryfiles,我想用最近创建的二进制文件附加以前编写的二进制文件。 本质上是合并它们。这是我正在使用的示例代码: with open("binary_file_1", "ab") as myfile: myfile.write("binary_file_2") 除了我得到的错误是“TypeError:必须是字符串或缓冲区,而不是文件” 但这正是我想要做的!将一个二进制文件添加到先前创建的二进制文件的末尾 我确实尝试将“wb”添加到“myfile.write”(“binary\u file\u 2”,
with open("binary_file_1", "ab") as myfile:
myfile.write("binary_file_2")
除了我得到的错误是“TypeError:必须是字符串或缓冲区,而不是文件”
但这正是我想要做的!将一个二进制文件添加到先前创建的二进制文件的末尾
我确实尝试将
“wb”
添加到“myfile.write”(“binary\u file\u 2”,“wb”)
,但它不喜欢这样。您需要实际打开第二个文件并读取其内容:
with open("binary_file_1", "ab") as myfile, open("binary_file_2", "rb") as file2:
myfile.write(file2.read())
来自python模块shutil
import os
import shutil
WDIR=os.getcwd()
fext=open("outputFile.bin","wb")
for f in lstFiles:
fo=open(os.path.join(WDIR,f),"rb")
shutil.copyfileobj(fo, fext)
fo.close()
fext.close()
首先,我们打开outputFile.bin二进制文件进行写入,然后我使用shutil.copyfileobj(src,dest)循环lstFiles中的文件列表,其中src和dest是文件对象。要获取文件对象,只需使用适当的模式“rb”调用文件名上的open来打开文件“读取二进制文件。对于每个打开的文件对象,我们必须将其关闭。连接的文件也必须关闭。
我希望这会有所帮助我怀疑您的代码是否会产生这种错误。你能发布你的实际代码吗?看……太好了!成功了!非常感谢你!这很好,第一个文件也不需要存在,所以你可以从无到有。给你的代码添加一些描述。逻辑比一段代码更有帮助。
import os
import shutil
WDIR=os.getcwd()
fext=open("outputFile.bin","wb")
for f in lstFiles:
fo=open(os.path.join(WDIR,f),"rb")
shutil.copyfileobj(fo, fext)
fo.close()
fext.close()