Python如何批量获取文件夹的大小并保存

  

很多时候,查看一个文件夹下的每个文件大小可以轻易的做的到,因为文件后面就是文件尺寸,但是如果需要查看一个文件夹下面所有的文件夹对应的尺寸,就发现需要把鼠标放到对应的文件夹上,稍等片刻才会出结果。

  

有时候,我们需要查看几十个甚至于上百个文件夹,找出包含文件最多,空间占用最大的那个,就比较麻烦了。这段代码是我以前的代码,可以按大小排序输出文件夹大小到txt文件,供使用的方便。

  

格式化当时花了很长时间,最后发现使用“YaHei.Consolas”字体可以解决,对齐后输出结果看起来还算舒服。

  

上代码:

        进口操作系统   进口日期时间         def get_folder_size(路径):   folder_size=0      如果不是os.path.exists(路径):   返回folder_size      如果os.path.isfile(路径):   folder_size=os.path.getsize(路径)   返回folder_size   试一试:   如果os.path.isdir(路径):   directory_lists os.scandir(路径):   在directory_lists directory_list:   如果directory_list.is_dir ():   sub_folder_size=get_folder_size (directory_list.path) #递归获取大小   folder_size +=sub_folder_size   elif directory_list.is_file ():   file_size=os.path.getsize (directory_list.path)   folder_size +=file_size      返回folder_size   除了:   通过         #以下主要是为了格式化输出   def get_file_length (file_name):=字符列表(file_name)   ascii_length=0   utf8_length=0      字符的字符:   如果奥德(字符)& lt;128:   ascii_length +=1   其他:   utf8_length +=2      返回ascii_length + utf8_length         def主要(basedir):   dirs os.scandir (basedir):   directory_size=[]   对于dir dirs:   试一试:   如果不是dir.is_file ():   dirsize=圆(get_folder_size (dir.path)/1000000) #返回文件的大小(以Mb为单位)   resformat=[dir.name dirsize]   directory_size.append (resformat)   除了:   通过   结果=排序(directory_size关键=λx: x[1],反向=True) #返回命令列表的大小   结果=[[我[0],”文件夹大小:“+ str(我[1])+ ' m ']我的结果)      张开(basedir +操作系统。9 + datetime.date.today () .isoformat () +”。txt”、“+”), f:   导致的结果:   #按照50的宽度格式化输出结果   len1=50 - get_file_length(结果[0])+ len(结果[0])   len2=25 - get_file_length(结果[1])+ len(结果[1])   f.writelines (' {: & lt; s {len1}}{:祝辞{len2}年代}\ n”。格式(结果[0],[1]结果,len1=len1 len2=len2))   打印('结果是成功地与日期作为文件名保存在目录。)         if __name__==癬_main__”:   basedir=输入(“请输入您想知道的目录大小:")   主要(basedir)      

如果输入相应的文件夹路径,输出结果如下:
  

  

 Python如何批量获取文件夹的大小并保存

  

 Python如何批量获取文件夹的大小并保存

  

有时间我再简化一下代码,目前先这样。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Python如何批量获取文件夹的大小并保存