磁碟清理 讀取大資料夾

2021-07-31 15:02:48 字數 2839 閱讀 9313

c盤一直亮紅燈,苦於找不到合適的清理方法. 於是,自己擼了一串**,幫忙找出》500m(自定義)的資料夾,然後判斷是否刪除,另外對空檔案進行刪除.

python 3.5

windows 7 32bit

#-*-coding:utf-8-*-

import os

from os.path import join,getsize

deflistbigfile

(dir,size,txtfile):

''' # 獲取一級目錄下所有檔案或資料夾大小

# 檔案》500m的列出來

'''txtfile.write('filename '+' '+'size '+'\n')

txtfile.write('-------------------------------------------'+'\n')

filenum = 0

# 獲取所有一級目錄檔案

files = os.listdir(dir)

for f in files:

if f[0] == '$':

pass

else:

print(f)

try:

filepath = os.path.join(dir,f)

# 跳過檔案

if os.path.isfile(filepath):

continue

# 空資料夾跳過

ifnot os.listdir(filepath):

print(f+' 為空資料夾.')

continue

# 如果是資料夾進入二級目錄

if os.path.isdir(filepath):

secondary_files = os.listdir(filepath)

if secondary_files[0]=='$': #忽略隱藏資料夾

continue

for sec_f in secondary_files:

print(' '+sec_f)

# 若二級目錄為資料夾,計算資料夾大小

sec_filepath = os.path.join(filepath,sec_f)

# 跳過檔案

if os.path.isfile(sec_filepath):

continue

#判斷資料夾是否為空

ifnot os.listdir(sec_filepath):

print(sec_filepath+' 資料夾為空')

# 刪除空目錄

os.rmdir(sec_filepath)

continue

filesize = getdirsize(sec_filepath)

filesize = (int)(filesize/1024/1024)

# 檔案或資料夾大於500m,寫入file

if filesize >500:

filenum += 1

print(sec_filepath)

txtfile.write(sec_filepath+' '+ str(filesize)+'\n')

except exception as e:

print(filepath+'該檔案不可讀..')

continue

finally:

pass

txtfile.write('\n'+'all big file num is '+str(filenum))

defgetdirsize

(dir):

size = 0

# 測試os.walk

for root,dirs,files in os.walk(dir):

try:

size+=sum([getsize(join(root,name)) for name in files])

except exception as e:

print('檔案大小無法計算 . ')

continue

return size

if __name__=='__main__':

dir = input('please input the path : ')

size = input('define the size for big file : ')

myfile = open('list.txt','w',encoding='utf-8') # 預設儲存在.py檔案同一路徑(解決中文亂碼)

#dir='c:\\'

listbigfile(dir,size,myfile)

myfile.close()

執行結果

將》500m(自定義)的檔案寫入檔案中:

filename                      size   

-------------------------------------------

e:\kankan\android 1962

e:\kankan\music 1734

e:\kankan\steve jobs 21636

all big file num is 3

python 3.x與2.x相比的一些不同:

1.python 3 初探,第 1 部分: python 3 的新特性

2. python 獲取目錄大小

4. python 獲取當前目錄下檔案

5. python 讀取乙個目錄下的所有目錄和檔案

快速刪除大資料夾

檔案太大了,刪除很慢,沒有關係,用下邊的命令試試!1.單擊 開始 執行 在 開啟 框中鍵入 cmd 單擊 確定 按鈕,開啟 命令提示符 視窗。2.在命令提示符下,鍵入 rmdir sd user。3.按下回車鍵。從windows2000開始,微軟就去掉了deltree.exe命令,但增強了rmdir...

快速刪除大資料夾

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!檔案太大了,刪除很慢,沒有關係,用下邊的命令試試!1.單擊 開始 執行 在 開啟 框中鍵入 cmd 單擊 確定 按鈕,開啟 命令提示符 視窗。2.在命令提示符下,鍵入 rmdir s d user。3.按下回車鍵。從windows 2000開始,微...

刪除超大資料夾

rm 刪除檔案很慢。網上學了rsync刪除,做個記錄。1.建立乙個臨時空目錄 blank。tequila為要刪除的超大資料夾。leo leo asuspro d640mb d640mb workspace mkdir blank leo leo asuspro d640mb d640mb works...