最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python如何批量獲取文件夾的大小并保存

 更新時間:2020年03月31日 11:57:53   作者:Johnthegreat  
這篇文章主要介紹了Python如何批量獲取文件夾的大小并保存,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

很多時候,查看一個文件夾下的每個文件大小可以輕易的做到,因為文件后面就是文件尺寸,但是如果需要查看一個文件夾下面所有的文件夾對應(yīng)的尺寸,就發(fā)現(xiàn)需要把鼠標(biāo)放到對應(yīng)的文件夾上,稍等片刻才會出結(jié)果。

有時候,我們需要查看幾十個甚至于上百個文件夾,找出包含文件最多,空間占用最大的那個,就比較麻煩了。這段代碼是我以前的代碼,可以按大小排序輸出文件夾大小到txt文件,供使用的方便。

格式化當(dāng)時花了很長時間,最后發(fā)現(xiàn)使用‘YaHei.Consolas'字體可以解決,對齊后輸出結(jié)果看起來還算舒服。

上代碼:

import os
import datetime
 
 
def get_folder_size(path):
  folder_size = 0
 
  if not os.path.exists(path):
    return folder_size
 
  if os.path.isfile(path):
    folder_size = os.path.getsize(path)
    return folder_size
  try:
    if os.path.isdir(path):
      with os.scandir(path) as directory_lists:
        for directory_list in directory_lists:
          if 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
 
        return folder_size
  except:
    pass
 
 
# 以下主要是為了格式化輸出
def get_file_length(file_name):
  characters = list(file_name)
  ascii_length = 0
  utf8_length = 0
 
  for character in characters:
    if ord(character) < 128:
      ascii_length += 1
    else:
      utf8_length += 2
 
  return ascii_length + utf8_length
 
 
def main(basedir):
  with os.scandir(basedir) as dirs:
    directory_size = []
    for dir in dirs:
      try:
        if not dir.is_file():
          dirsize = round(get_folder_size(dir.path) / 1000000) # return the file size in Mb
          resformat = [dir.name, dirsize]
          directory_size.append(resformat)
      except:
        pass
    results = sorted(directory_size, key=lambda x: x[1], reverse=True) # return a list ordered by size
    results = [[i[0], '文件夾大?。? + str(i[1]) + ' Mb'] for i in results]
 
    with open(basedir + os.sep + datetime.date.today().isoformat() + '.txt', 'a+') as f:
      for result in results:
        # 按照50的寬度格式化輸出結(jié)果
        len1 = 50 - get_file_length(result[0]) + len(result[0])
        len2 = 25 - get_file_length(result[1]) + len(result[1])
        f.writelines('{:<{len1}s} {:>{len2}s}\n'.format(result[0], result[1], len1=len1, len2=len2))
      print('The result was successfully saved in the directory with date as file name.')
 
 
if __name__ == "__main__":
  basedir = input("Please input the directory you would like to know the sizes: ")
  main(basedir)

如果輸入相應(yīng)的文件夾路徑,輸出結(jié)果如下:

有時間我再簡化一下代碼,目前先這樣。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python三種數(shù)據(jù)結(jié)構(gòu)及13種創(chuàng)建方法總結(jié)

    python三種數(shù)據(jù)結(jié)構(gòu)及13種創(chuàng)建方法總結(jié)

    拿Python來說,數(shù)據(jù)結(jié)構(gòu)的概念也是超級重要,不同的數(shù)據(jù)結(jié)構(gòu),有著不同的函數(shù),供我們調(diào)用,接下來,我們分別來介紹字符串、列表、字典的創(chuàng)建方法
    2021-09-09
  • GIt在pyCharm的詳細(xì)使用教程記錄

    GIt在pyCharm的詳細(xì)使用教程記錄

    使用git+pycharm有一段時間了,算是稍有點(diǎn)心得,所以下面這篇文章主要給大家介紹了關(guān)于GIt在pyCharm的詳細(xì)使用的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • Python 腳本拉取 Docker 鏡像問題

    Python 腳本拉取 Docker 鏡像問題

    這篇文章主要介紹了 Python 腳本拉取 Docker 鏡像問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • 虛擬環(huán)境及venv和virtualenv的區(qū)別說明

    虛擬環(huán)境及venv和virtualenv的區(qū)別說明

    這篇文章主要介紹了虛擬環(huán)境及venv和virtualenv的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • pandas如何獲取某個數(shù)據(jù)的行號

    pandas如何獲取某個數(shù)據(jù)的行號

    這篇文章主要介紹了pandas如何獲取某個數(shù)據(jù)的行號問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Pandas中Replace函數(shù)使用那些事兒

    Pandas中Replace函數(shù)使用那些事兒

    Pandas是基于NumPy?的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,下面這篇文章主要給大家介紹了關(guān)于Pandas中Replace函數(shù)使用那些事兒,文中通過實例代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • 基于Python快速處理PDF表格數(shù)據(jù)

    基于Python快速處理PDF表格數(shù)據(jù)

    這篇文章主要介紹了基于Python快速處理PDF表格數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Python利用request庫實現(xiàn)翻譯接口

    Python利用request庫實現(xiàn)翻譯接口

    這篇文章主要為大家詳細(xì)介紹了Python如何利用request庫打造自己的翻譯接口,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-04-04
  • python獲取代理IP的實例分享

    python獲取代理IP的實例分享

    今天小編就為大家分享一篇python獲取代理IP的實例分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python中八大圖像特效算法的示例詳解

    Python中八大圖像特效算法的示例詳解

    圖像特效處理是基于圖像像素數(shù)據(jù)特征,將原圖像進(jìn)行一定步驟的計算——例如像素作差、灰度變換、顏色通道融合等,從而達(dá)到期望的效果。本文將為大家介紹八種常用的圖像特效算法,需要的可以參考一下
    2022-03-03

最新評論

海盐县| 霸州市| 西城区| 双桥区| 贡山| 蛟河市| 兴化市| 克山县| 新沂市| 卓资县| 大关县| 邻水| 龙岩市| 于都县| 阳泉市| 沧州市| 册亨县| 慈溪市| 乳源| 滨州市| 万全县| 慈利县| 故城县| 聂拉木县| 万源市| 林西县| 滨州市| 疏勒县| 沛县| 潼南县| 沧州市| 嘉兴市| 平武县| 米泉市| 赤峰市| 兰溪市| 竹山县| 德昌县| 鹤庆县| 双辽市| 庆云县|