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函数中帮助了我很多。。。。谢谢你,兄弟