Python:根据文件大小打印文件名及其目录

时间:2016-07-03 04:41:21

标签: python

如果文件大小超过一定数量,我想打印文件名及其目录。我写了一个并设置了1KB的标准,但即使有大量的文件大于1KB,它也不起作用。

import os, shutil

def deleteFiles(folder):
    folder = os.path.abspath(folder)

    for foldername, subfolders, filenames in os.walk(folder):
         for filename in filenames:
            if os.path.getsize(filename) > 1000:
                print(filename + ' is inside: ' + foldername)

deleteFiles('C:\\Cyber\\Downloads')

我得到了什么'!

然后我在交互式shell中编写代码,我收到了以下错误:

Traceback (most recent call last):
   File "<pyshell#14>", line 3, in <module>
      if os.path.getsize(filename) > 100:
   File "C:\Users\Cyber\Downloads\lib\genericpath.py", line 50, in getsize
    return os.stat(filename).st_size
 FileNotFoundError: 

我想知道如何修复我的代码。

2 个答案:

答案 0 :(得分:0)

替换:

deleteFiles('C:\\Cyber\\Downloads')

import os

a = 'c:' # removed slash
b = 'Cyber' # removed slash
c = 'Downloads'

path = os.path.join(a + os.sep, b, c)
deleteFiles(path)

答案 1 :(得分:0)

os无法找到没有给定路径的文件,在您的代码之后,您必须重新指定绝对路径。取代

if os.path.getsize(filename) > 1000:

if os.path.getsize(os.path.abspath(foldername + "/" + filename)) > 1000:

它应该有用。