def read_and_write():
"""
读取一个文件,然后写入另一个文件
:return:
"""
with open('demo.log', 'rb', buffering=1024 * 1024) as f:
with open('demo01.log', 'wb', buffering=1024 * 1024) as new_f:
for line in f:
new_f.write(line)
import time
def read_large_file(file_name, chunk_size=1024 * 1024):
with open(file_name, 'rb') as f:
while True:
chunk = f.read(chunk_size)
if not chunk:
break
yield chunk
content = '12345' * 99999999
def func0():
start = time.time()
with open('ret1.log', 'wb', buffering=1024 * 1024) as new_f:
for line in read_large_file('demo01.log'):
new_f.write(line)
print('func0 use ', time.time() - start)
def func1():
start = time.time()
with open('ret2.log', 'w', buffering=1024 * 1024) as new_f:
# for line in read_large_file('demo.log'):
# new_f.write(line)
new_f.write(content)
print('func1 use ', time.time() - start)
def func2():
start = time.time()
with open('ret3.log', 'w') as new_f:
# for line in read_large_file('demo.log'):
# new_f.write(line)
new_f.write(content)
print('func2 use ', time.time() - start)
func0()
func1()
func2()
python读取、写入超大文件
于 2023-07-13 21:53:07 首次发布