如何删除文件夹及其子文件夹内的所有空文件?
问题描述:
我试图删除文件夹中的所有空文件,并有该文件夹中的文件夹,以便需要检查这些文件夹太里面: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
)
答
我希望这可以帮助你
#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
哎呀,我没有注意到蟒蛇标签,这是由于Windows CMD,但它是简单的,所以你可能会发现它有用反正。 – Marichyasana 2015-04-04 22:36:04