Bob*_*les 8 python directory size file
def size_of_dir(dirname):
print("Size of directory: ")
print(os.path.getsize(dirname))
Run Code Online (Sandbox Code Playgroud)
是有问题的代码.dirname是一个包含130个文件的目录,每个文件大约1kb.当我调用这个函数时,它返回4624,这不是目录的大小......为什么会这样?
FRD*_*FRD 11
此值(4624B)代表的大小文件是描述该目录.目录被描述为inode(http://en.wikipedia.org/wiki/Inode),其中包含有关其包含的文件和目录的信息.
要获取该路径中的文件/子目录数,请使用:
len(os.path.listdir(dirname))
Run Code Online (Sandbox Code Playgroud)
要获得总数据量,您可以使用此问题中的代码,即(如@linker发布)
sum([os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f)]).
Run Code Online (Sandbox Code Playgroud)
使用os.path.getsize()只会获得目录的大小,而不是其内容.因此,如果您调用getsize()任何目录,您将始终获得相同的大小,因为它们都以相同的方式表示.相反,如果您在文件上调用它,它将返回实际的文件大小.
如果你想要内容,你需要递归地做,如下所示:
sum([os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f)])
Run Code Online (Sandbox Code Playgroud)