使用os模块时文件不会删除

时间:2018-07-08 00:53:43

标签: 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:\\Python27\s')

2 个答案:

答案 0 :(得分:0)

您正在分配迭代器os.listdir的值返回到folder,但是您根本没有在os.statos.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           
相关问题