Python 使用操作系统模块时不删除文件
我试图制作一个程序,删除所有的空文件(大小为零)。然后,我通过在“命令提示符”中拖动脚本文件来运行程序并运行它 但是,没有删除任何空文件(但我有一些) 请帮我找到代码中的错误Python 使用操作系统模块时不删除文件,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我试图制作一个程序,删除所有的空文件(大小为零)。然后,我通过在“命令提示符”中拖动脚本文件来运行程序并运行它 但是,没有删除任何空文件(但我有一些) 请帮我找到代码中的错误 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:\\Python
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')
您正在分配值迭代器
os.listdir
返回到文件夹
,但您根本没有在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)
您可以删除类似以下代码的内容,并且需要添加一些异常处理。我使用了一个测试文件夹名称来演示
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
您正在尝试删除名为
s
的文件,非常感谢。。。。我忘记在删除之前编写操作系统。。。。。您的代码在join函数中帮助了我很多。。。。谢谢你,兄弟