如何删除文件夹及其子文件夹内的所有空文件?

如何删除文件夹及其子文件夹内的所有空文件?

问题描述:

我试图删除文件夹中的所有空文件,并有该文件夹中的文件夹,以便需要检查这些文件夹太里面:C之内如何删除文件夹及其子文件夹内的所有空文件?

如 删除所有空文件:\文件夹1 \文件夹1和C :\文件夹1 \文件夹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是平台特定的。过滤遍历的目录不是绝对必要的,但有帮助。

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

我希望这可以帮助你

#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') 

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