Python判断文件大小,python对文件内每个字符进行大小写转换处理并输出
Python将字节数转换为文件大小。有时候我们需要把一个文件的字节数转换成文件大小的单位,比如KB,MB,GB,TB。
和字节文件单位转换,一般可以用1024转换。虽然这很简单,但实际上需要判断字节的取值范围,才能知道最后的结果是什么单位。所以本文写了一个简单的转换工具,可以作为模块使用,也可以直接把函数复制到使用的地方,然后调用。
一、round()的内置函数
# coding=utf-8print (round (10,2)) print (round (10/1,2)) print (round (10/8,3)) print (round (10/3,3))运行结果:
1010.01.253.333 round()是Python的内置函数。第一个参数传入一个数字,第二个参数传入计算结果的小数精度。
返回值是一个数字,可以是整数,也可以是浮点数。
如果传入的数字是整数,则返回的结果是整数。
如果传入了浮点数或计算公式。当计算结果的小数位数小于第二个参数时,显示计算结果的精度。比如10/8的结果是1.25,结果有两位小数。即使指定的精度是3,也只会显示两位数,后面不会加零。
当计算结果小数点后的位数大于第二个参数时,计算结果小数点后的位数将被四舍五入,小数点后的位数将按照第二个参数保留。如果10/3的结果是无限循环小数,且指定精度为3,则小数点后只保留3位。
在将字节转换为文件大小单位时,通常会保留两位小数,这可以通过round()函数来控制。
二。文件大小单位的描述
单位换算,1KB就是1024字节。
小于一个字节的单位是一位(也叫比特),一个字节等于8位。
MB大于字节,1MB是1024KB。
1GB是1024MB,1TB是1024GB,诸如此类。
每两个相邻单元之间的间隙是1024倍。
3.用于将字节转换为文件大小单位的模块
# coding=utf-8 import math _ _ all _ _=[ py byte ]def py byte(size,dot=2): size=float(size) #位比特bit if 0=size 1:human _ size=str(round(size/0.125,dot)) b #字节字节byte elif 1=size 1024:human _ size=str(round(size,dot)) B #千字节千字节千字节elif math.pow(1024,1)=size math.pow(1024,2):human _ size=str(round(size/math。pow(1024,1),dot)) KB #兆字节兆兆字节elif math.pow(1024,2)=size math.pow(1024,3):human _ size=str(round(size/math。功率(1024,2),点)) MB #吉字节吉千兆字节elif math.pow(1024,3)=size math.pow(1024,4):human _ size=str(round(size/math。pow(1024,3),dot)) GB #太字节太Tera Byte elif math.pow(1024,4)=size math.pow(1024,5):human _ size=str(round(size/math。pow(1024,4),dot)) TB #拍字节拍Peta Byte elif math.pow(1024,5)=size math.pow(1024,6):human _ size=str(round(size/math。pow(1024,5),dot)) PB #艾字节艾Exa Byte elif math.pow(1024,6)=size math.pow(1024,7):human _ size=str(round(size/math。功率(1024,6),点)) EB #泽它字节泽Zetta Byte elif math.pow(1024,7)=size math.pow(1024,8):human _ size=str(round(size/math。pow(1024,7),dot) ZB #尧它字节尧Yotta Byte elif math.pow(1024,8)=size math.pow(1024,9):human _ size=str(round(size/math。pow(1024,8),dot)) YB #千亿亿亿字节Bront Byte elif math.pow(1024,9)=size math.pow(1024,10):human _ size=str(round(size/math。pow(1024,9),dot)) BB #百万亿亿亿字节Dogga Byte elif math.pow(1024,10)=size math.pow(1024,11):human _ size=str(round(size/math。功率(1024,10),点)) NB #十亿亿亿亿字节Dogga Byte elif math.pow(1024,11)=size math.pow(1024,12):human _ size=str(round(size/math。pow(1024,11),dot)) DB #万亿亿亿亿字节Corydon Byte elif math.pow(1024,12)=size:human _ size=str(round(size/math。pow(1024,12),dot)) CB #负数否则:提高值错误({ }()接受大于或等于0的数字,但小于给定的0。格式(pybyte .__name__))返回human_size math.pow(x,y)返回的结果是x的y次方,单位之间是以倍数递增的,所以刚好适合。
上面的代码将转换的逻辑封装成一个函数,可以在任何需要换算的地方导入和调用,直接返回结果。
print(py byte(0.5))print(py byte(724))print(py byte(1000 * 204,3))print(py byte(1000 * 204))print(py byte(1000 * 1024 * 204,3))运行结果:
4.0b 724.0 b 199.219 kb 199.22 kb 199.219 MB调用上面的函数,返回的结果与预期相同。
注意,根据保留的位数计算出最后的小数,如果最后一位是0,0不会显示,所以有时显示的长度会不一样。
不过,我们在看文件大小时,并不需要很高的精度,一般来说,大部分人对于医学学士的精度会关注,到千字节就不会关注了。所以说,这个计算结果完全没有问题,可以在任何地方使用。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。