python读取文件的一般流程(python关于文件读取read里面的参数解释)
本文详细说明文件读取时,read()中参数的解释,可直接滑到文尾看总结.
f.read()读取文件的整个内容,返回的是字符串
如果一次性读取比如10G的文件,内存就直接爆了,所以需要限制单次读取的大小.
read()可接收size参数,在官方文档提示中
官方文档提示的size参数
size参数是整数型,如果不设置.默认f,read()默认读取字节数-1
也就是说在文件管理器中,显示为字节数量为x,那么默认size的值为x-1
文件管理中的文件属性,红框中的值减1就是size值
-----------------------
案例一:
读取下面这个文件的内容
箭头所指就是文件的末尾
代码及其运行结果如下:
265997字节内容全部读取到并输出了
-----------------------
案例二:
依旧是读取上面那个265 997 字节大小的文件
代码及其运行结果如下:
读取1024 * 87 100 输出的内容
从图中可以看到:
实际是265,997 字节(约为259k)大小的文件,
只读取1024 * 87 100字节(约87k)就输出了所有的内容 !
不是说好的size值多大就读取多少文件内容吗?怎么设置比size小的多的值也读取了全部的文件内容?且看案例三:
-----------------------
案例三:代码及其运行结果
代码及其结果
这次读取的内容的大小为 整个内容的字符串长度,依旧成功输出了几乎(少4个字)全部的内容.
到这应该能明白了,
在utf-8的编码的文本中,一个汉字占三个字节,一个英文字母占一个字节.
又由于在文本文件读取模式,size的计数是以Unicode字符的个数计数的,
也就是说列举的三个案例size的计数不是字节,而是字符.
-----------------------
绕了这么多弯子,总结.
读取文件限制最大读取大小时,要注意
在文本文件读取模式,size的计数是以Unicode字符的个数计数的,
在二进制文件读取模式下,size计数是以字节为单位计数。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com