我试图制作一个程序,删除所有空文件(大小为零)。然后,通过在“命令提示符”中拖动脚本文件来运行程序并运行它。
但是,没有删除空文件(但我有一些空文件)。
请帮助我在代码中查找错误。
import os
a = os.listdir('C:\\Python27')
for folder in a :
sizes = os.stat('C:\\Python27')
b = sizes.st_size
s = folder
if b == 0 :
remove('C:\\Python27\s')
答案 0 :(得分:0)
您正在分配迭代器os.listdir
的值返回到folder
,但是您根本没有在os.stat
或os.remove
中使用它,而是在传递给他们不需要的固定值。
您应该执行以下操作:
import os
dir = 'C:\\Python27'
for file_name in os.listdir(dir):
file_path = os.path.join(dir, file_name)
if os.stat(file_path).st_size == 0:
os.remove(file_path)
答案 1 :(得分:0)
您可以删除类似以下代码的内容,并且需要添加一些异常处理。我已使用测试文件夹名称进行演示。
import os
import sys
dir = 'c:/temp/testfolder'
for root, dirs, files in os.walk(dir):
for file in files:
fname = os.path.join(root, file)
try:
if os.path.getsize(fname) == 0:
print("Removing file %s" %(fname))
os.remove(fname)
except:
print("error: unable to remove 0 byte file")
raise