900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python二进制读取和普通读取文本文件的区别

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

时间:2023-07-22 03:34:30

相关推荐

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

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

1、写入文本文件

示例代码1: 【小文件】

import timeimport 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 timeimport 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 timeimport 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以上),二进制方式的效率要高于普通读写方式。这是因为二进制方式可以一次读取或写入大量数据,而普通读写方式需要逐行读取或写入数据。

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。