我正试图将字节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。