当前位置: 首页 > 面试题库 >

使用Python计算目录的大小?

程招
2023-03-14
问题内容

在我重新发明这个特殊的轮子之前,是否有人有一个很好的例程来使用Python计算目录的大小?如果例程以Mb / Gb等格式很好地格式化大小,那将是非常好的。


问题答案:

这遍历所有子目录;总结文件大小:

import os

def get_size(start_path = '.'):
    total_size = 0
    for dirpath, dirnames, filenames in os.walk(start_path):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            # skip if it is symbolic link
            if not os.path.islink(fp):
                total_size += os.path.getsize(fp)

    return total_size

print(get_size(), 'bytes')

还有一个使用os.listdir进行娱乐的oneliner
不包括子目录 ):

import os
sum(os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f))

参考:

  • os.path.getsize-以字节为单位给出大小
  • 步行
  • os.path.islink

已更新 要使用 os.path.getsize ,这比使用os.stat()。st_size方法更清晰。

感谢ghostdog74指出这一点!

os.stat -
st_size 给出大小(以字节为单位)。也可以用于获取文件大小和其他文件相关信息。

import os

nbytes = sum(d.stat().st_size for d in os.scandir('.') if d.is_file())

更新2018

如果您使用Python
3.4或更早版本,则可以考虑使用walk第三方scandir软件包提供的更有效的方法。在Python
3.5和更高版本中,此软件包已合并到标准库中,os.walk并获得了相应的性能提升。

更新2019

最近,我一直在使用pathlib越来越多的pathlib解决方案:

from pathlib import Path

root_directory = Path('.')
sum(f.stat().st_size for f in root_directory.glob('**/*') if f.is_file())


 类似资料:
  • 问题内容: 我需要计算使用Python的目录中的文件数。 我猜最简单的方法是,但这也将目录本身视为文件。 有什么方法可以只计算 目录 中的文件吗? 问题答案: 会比使用效率更高。要测试文件名是否是普通文件(而不是目录或其他实体),请使用:

  • 本文向大家介绍php计算整个目录大小的方法,包括了php计算整个目录大小的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php计算整个目录大小的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。

  • 问题内容: 如何使用Java计算目录中的文件数?为了简单起见,假设该目录没有任何子目录。 我知道以下的标准方法: 但这将有效地遍历目录中的所有文件,如果文件数量很大,这可能会花费很长时间。另外,除非目录中的实际文件数大于某个固定的大数字(例如5000),否则我不关心目录中的实际文件。 我正在猜测,但是目录(或者在Unix中,它的i节点)是否不存储其中包含的文件数量?如果我可以直接从文件系统获取该数

  • 问题内容: 如何在Linux平台上使用C计算目录中的文件数。 问题答案: 无法保证此代码可以编译,并且实际上仅与Linux和BSD兼容:

  • 在谷歌上搜索了很长时间后,我没有找到一个pyspark接口来获取文件列表。似乎pyspark没有提供这样的接口。 我看到一个SO回答,说我需要使用hdfscli并将其导入到我的python脚本中。这也是唯一的办法吗?我不敢相信Spark没有hdfs文件列表的方法。

  • 概述 物理层 链路层 网络层 传输层 应用层 参考链接 计算机网络, 谢希仁 JamesF.Kurose, KeithW.Ross, 库罗斯, 等. 计算机网络: 自顶向下方法 [M]. 机械工业出版社, 2014. W.RichardStevens. TCP/IP 详解. 卷 1, 协议 [M]. 机械工业出版社, 2006. Active vs Passive FTP Mode: Which