2010年06月18日 星期五 15:13
用来显示字符串形式的大小,单位是K,M,G,T,小于1K的将无单位。不知道有没有类似的,因此就自已写了一个。
def str_filesize(size):
"""
>>> print str_filesize(0)
0
>>> print str_filesize(1023)
1023
>>> print str_filesize(1024)
1K
>>> print str_filesize(1024*2)
2K
>>> print str_filesize(1024**2-1)
1023K
>>> print str_filesize(1024**2)
1M
"""
import bisect
d = [(1024-1,'K'), (1024**2-1,'M'), (1024**3-1,'G'), (1024**4-1,'T')]
s = [x[0] for x in d]
index = bisect.bisect_left(s, size) - 1
if index == -1:
return str(size)
else:
b, u = d[index]
return str(size / (b+1)) + u
2010年06月19日 星期六 17:51
os.stat()算不算呢
2010年06月19日 星期六 19:08
是把大小转为K,M,G,T之类的,不是真正的求文件大小。求文件大小可以使用:
os.path.getsize(filename)
2010年06月19日 星期六 21:15
1024 进制,还是 1000进制,设置成可选吧。
现在好多系统是1000进制计算大小的。
2010年06月19日 星期六 23:13
还是按1024算。
2010年06月20日 星期日 06:14
dive into python 3的第一个例子就是求这个:
http://diveintopython3.org/your-first-python-program.html
按照标准,kB应该以1000为单位,KiB才是以1024为单位。
2010年06月20日 星期日 07:38
关于大小网上有不同的答案。我还是倾向于按2的n次方的计算方式。
Zeuux © 2024
京ICP备05028076号