在我重新发明这个特殊的轮子之前,是否有人有一个很好的例程来使用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.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