Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中复制二进制文件块?_Python_File_Buffer_Binaryfiles - Fatal编程技术网

如何在Python中复制二进制文件块?

如何在Python中复制二进制文件块?,python,file,buffer,binaryfiles,Python,File,Buffer,Binaryfiles,我有一个大的二进制文件(60GB),我想把它分成几个较小的文件。我迭代了文件,找到了要使用fileObject.tell()方法拆分文件的点,因此现在我有了一个1000个拆分点的数组,名为file\u pointers。我正在寻找一种从这些分割点创建文件的方法,因此函数看起来像: def split_file(file_object, file_pointers): # Do something here 它将为每个块创建文件。我看到了这一点,但我担心Python的循环速度可能太慢,

我有一个大的二进制文件(60GB),我想把它分成几个较小的文件。我迭代了文件,找到了要使用
fileObject.tell()
方法拆分文件的点,因此现在我有了一个1000个拆分点的数组,名为
file\u pointers
。我正在寻找一种从这些分割点创建文件的方法,因此函数看起来像:

def split_file(file_object, file_pointers):
     # Do something here

它将为每个块创建文件。我看到了这一点,但我担心Python的循环速度可能太慢,而且我还觉得一定有某种内置函数应该是类似的。

这比我想象的要简单得多,但我会在这里发布我的答案,以防有人需要快速解决方案。下面是一个从
文件\u指针[1]
复制到
文件\u指针[2]

with open('train_example.bson', 'rb') as fbson:
    fbson.seek(file_pointers[1])
    bytes_chunk = fbson.read(file_pointers[2] - file_pointers[1])
    with open('tmp.bson', 'wb') as output_file:
        output_file.write(bytes_chunk)

这比我想象的要简单得多,但我会在这里发布我的答案,以防有人想要一个快速的解决方案。下面是一个从
文件\u指针[1]
复制到
文件\u指针[2]

with open('train_example.bson', 'rb') as fbson:
    fbson.seek(file_pointers[1])
    bytes_chunk = fbson.read(file_pointers[2] - file_pointers[1])
    with open('tmp.bson', 'wb') as output_file:
        output_file.write(bytes_chunk)