复制&粘贴信息没有f.read?

时间:2016-07-18 22:09:06

标签: python performance file copy-paste data-management

我正在尝试将字节X中的信息从大型数据文件复制并粘贴到新文件中。我使用f.readline()和f.tell()获得了X和Y.有没有更快的方法来执行此操作,然后使用下面的代码。

import os
a = 300    # Beginning Byte Location
b = 208000  # Ending Byte Location

def file_split(x,y):
    g = open('C:/small_file.dat', 'wb')

    with open('C:/huge_data_file.dat', 'rb') as f:
        f.seek(x, os.SEEK_SET) # Sets file pointer to x
        line = '-1'
        while (line != '')  # line = '' would indicate EOF
            while (f.tell() < y):
                g.write(f.read(1))        
    g.close()

file_split(a,b)

1 个答案:

答案 0 :(得分:0)

您可以从比1个字节更大的块大小开始?如果它永远不会是兆字节的数据,那么只需要g.write(f.read(b-a))就可以完成,不需要循环。如果它将是兆字节,您可能希望逐块执行,确保最后一个块更短,不超过b。