Python: 如何按大小获取文件的一部分
Python: how to get part of file by size
我只想从包含行的 txt 文件 (10GB) 中读取一部分(不是块)并将它们写入另一个文件。
该部分的大小应恰好为 25MB。
我试过 linecache.getlines
,但不是很准确。
谢谢
执行拆分的一种简单方法是使用 read(),假设每个字符都是一个字节。
for nameadd in range(10*1024/25):
f = open('fname.txt')
saveTxt = f.read(25*(1024**2))
fSave = open(str(nameadd)+'fname.txt','w')
fSave.write('%s',saveTxt)
这里已经描述过了Lazy Method for Reading Big File in Python?
def read_in_chunks(file_object, chunk_size=25*1024*1024):
"""Lazy function (generator) to read a file piece by piece.
Default chunk size: 25MB."""
while True:
data = file_object.read(chunk_size)
if not data:
break
yield data
f = open('really_big_file.dat')
for piece in read_in_chunks(f):
process_data(piece)
我只想从包含行的 txt 文件 (10GB) 中读取一部分(不是块)并将它们写入另一个文件。 该部分的大小应恰好为 25MB。
我试过 linecache.getlines
,但不是很准确。
谢谢
执行拆分的一种简单方法是使用 read(),假设每个字符都是一个字节。
for nameadd in range(10*1024/25):
f = open('fname.txt')
saveTxt = f.read(25*(1024**2))
fSave = open(str(nameadd)+'fname.txt','w')
fSave.write('%s',saveTxt)
这里已经描述过了Lazy Method for Reading Big File in Python?
def read_in_chunks(file_object, chunk_size=25*1024*1024):
"""Lazy function (generator) to read a file piece by piece.
Default chunk size: 25MB."""
while True:
data = file_object.read(chunk_size)
if not data:
break
yield data
f = open('really_big_file.dat')
for piece in read_in_chunks(f):
process_data(piece)