在没有f.read的情况下复制和粘贴信息?



我正试图将字节X到Y的信息从一个巨大的数据文件复制并粘贴到一个新文件中。我用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字节的块开始吗?如果它永远不会有兆字节的数据,只需使用g.write(f.read(b-a))就可以了,不需要循环。如果要达到兆字节,您可能需要逐块执行,确保最后一个块更短,不超过b。

相关内容

  • 没有找到相关文章

最新更新