python二进制读取和普通读取文本文件的区别

        Python读写文件时,二进制方式和普通方式的效率区别取决于文件的类型和大小。

1、写入文本文件

示例代码1:  【小文件】

import time
import randomrandom_str = ['*', '-', '+', '#', 'a', 'b', 'c', 'd']
datas = ''
for i in range(1000):s = random.choice(random_str) * i * 10datas += sstart_time1 = time.time()
# 二进制方式写入文本文件
with open('./data/二进制方式写入.txt', 'bw') as f:f.write(datas.encode())end_time1 = time.time()start_time2 = time.time()
# 普通方式写入文本文件
with open('./data/普通方式写入.txt', 'w') as f:f.write(datas)
end_time2 = time.time()print("二进制方式写入耗时:", end_time1 - start_time1)
print("普通方式写入耗时:", end_time2 - start_time2)

运行结果:

示例代码2:  【中大文件】

import time
import randomrandom_str = ['*', '-', '+', '#', 'a', 'b', 'c', 'd']
datas = ''
for i in range(1000):s = random.choice(random_str) * i * 250datas += sstart_time1 = time.time()
# 二进制方式写入文本文件
with open('./data/二进制方式写入.txt', 'bw') as f:f.write(datas.encode())end_time1 = time.time()start_time2 = time.time()
# 普通方式写入文本文件
with open('./data/普通方式写入.txt', 'w') as f:f.write(datas)
end_time2 = time.time()print("二进制方式写入耗时:", end_time1 - start_time1)
print("普通方式写入耗时:", end_time2 - start_time2)

运行结果:

示例代码3:   【大文件】

import time
import randomrandom_str = ['*', '-', '+', '#', 'a', 'b', 'c', 'd']
datas = ''
for i in range(1000):s = random.choice(random_str) * i * 2000datas += sstart_time1 = time.time()
# 二进制方式写入文本文件
with open('./data/二进制方式写入.txt', 'bw') as f:f.write(datas.encode())end_time1 = time.time()start_time2 = time.time()
# 普通方式写入文本文件
with open('./data/普通方式写入.txt', 'w') as f:f.write(datas)
end_time2 = time.time()print("二进制方式写入耗时:", end_time1 - start_time1)
print("普通方式写入耗时:", end_time2 - start_time2)

运行结果:

2、读取文本文件

示例代码1: 【小文件】【4.76M】

import timestart_time1 = time.time()
# 二进制方式读取文本文件
with open('./data/二进制方式写入.txt', 'br') as f:f.read()end_time1 = time.time()start_time2 = time.time()
# 普通方式读取文本文件
with open('./data/普通方式写入.txt', 'r') as f:f.read()
end_time2 = time.time()print("二进制方式读取耗时:", end_time1 - start_time1)
print("普通方式读取耗时:", end_time2 - start_time2)

运行结果:

示例代码2: 【中大文件】【119M】

import timestart_time1 = time.time()
# 二进制方式读取文本文件
with open('./data/二进制方式写入.txt', 'br') as f:f.read()end_time1 = time.time()start_time2 = time.time()
# 普通方式读取文本文件
with open('./data/普通方式写入.txt', 'r') as f:f.read()
end_time2 = time.time()print("二进制方式读取耗时:", end_time1 - start_time1)
print("普通方式读取耗时:", end_time2 - start_time2)

运行结果:

示例代码3: 【大文件】【952M】

import timestart_time1 = time.time()
# 二进制方式读取文本文件
with open('./data/二进制方式写入.txt', 'br') as f:f.read()end_time1 = time.time()start_time2 = time.time()
# 普通方式读取文本文件
with open('./data/普通方式写入.txt', 'r') as f:f.read()
end_time2 = time.time()print("二进制方式读取耗时:", end_time1 - start_time1)
print("普通方式读取耗时:", end_time2 - start_time2)

运行结果:

3、总结

        对于小文件(几百KB以下),普通读写方式和二进制方式的效率差异不大。但是对于大文件(几百MB以上),二进制方式的效率要高于普通读写方式。这是因为二进制方式可以一次读取或写入大量数据,而普通读写方式需要逐行读取或写入数据。

        此外,对于二进制文件(如图片、视频、音频等),使用二进制方式读写可以保证文件的完整性和正确性。而对于文本文件,使用普通读写方式可以方便地进行文本处理和编辑。

        因此,选择何种方式读写文件应该根据具体情况而定。对于小文件和文本文件,可以使用普通读写方式;对于大文件和二进制文件,使用二进制方式可以提高效率和保证文件的完整性。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部