2015-04-04 258 views

回答

2
import sys 
import os 

def main(): 
    getemptyfiles(sys.argv[1]) 


def getemptyfiles(rootdir): 
    for root, dirs, files in os.walk(rootdir): 
     for d in ['RECYCLER', 'RECYCLED']: 
      if d in dirs: 
       dirs.remove(d) 

     for f in files: 
      fullname = os.path.join(root, f) 
      try: 
       if os.path.getsize(fullname) == 0: 
        print fullname 
        os.remove(fullname) 
      except WindowsError: 
       continue 

這將一點調整的工作:
os.remove()語句可能會失敗,所以你可能要與try...except來包裝它。 WindowsError是平臺特定的。過濾遍歷的目錄不是絕對必要的,但有幫助。

0

for循環使用dir以遞歸方式查找當前目錄和所有子文件夾中的所有文件,但不查找目錄。然後第二行檢查每個文件的長度是否小於1個字節,然後刪除它。

cd /d C:\folder1 

for /F "usebackq" %%A in (`dir/b/s/a-d`) do (
    if %%~zA LSS 1 del %%A 
) 
+0

哎呀,我沒有注意到蟒蛇標籤,這是由於Windows CMD,但它是簡單的,所以你可能會發現它有用反正。 – Marichyasana 2015-04-04 22:36:04

0

我希望這可以幫助你

#encoding = utf-8 
import os 

docName = [] 
def listDoc(path): 
    docList = os.listdir(path) 
    for doc in docList: 
     docPath = os.path.join(path,doc) 
     if os.path.isfile(docPath): 
      if os.path.getsize(docPath)==o: 
       os.remove(docPath) 
     if os.path.isdir(docPath): 
      listDoc(docPath) 

listDoc(r'C:\folder1') 
0
import os 
path=input("enter valid path") 
while(True): 
    if(os.path.isdir(path)): 
     break 
    else: 
     print("please enter a valid path ") 
for root,dirs,files in os.walk(path): 
for name in files: 
    filename=os.path.join(root,name) 
    if os.stat(filename).st_size==0: 
    print(" Removing ",filename) 
    os.remove(filename) 
+0

請修正縮進 - 這真的很難閱讀。 – zero323 2015-12-17 19:56:43

相關問題