Python论坛  - 讨论区

标题:一个简单的计算文件大小的函数

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哲思注册吗?现在 注册 !

    Zeuux © 2019

    京ICP备05028076号