Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中使用os.walk查找大于300MB的文件?_Python_For Loop_If Statement - Fatal编程技术网

在Python中使用os.walk查找大于300MB的文件?

在Python中使用os.walk查找大于300MB的文件?,python,for-loop,if-statement,Python,For Loop,If Statement,我写了这段代码来遍历目录并查找大于300MB的文件 但是,我得到了很多重复的值,并且重复的数量在不同的文件中有所不同。有人能给我解释一下或者改进一下代码吗 import os path = 'C:\\Users\\brentond\\Desktop\\Lower Thames Crossing' for foldername, subfolders, filenames in os.walk(path): for subfolder in subfolders: for

我写了这段代码来遍历目录并查找大于300MB的文件

但是,我得到了很多重复的值,并且重复的数量在不同的文件中有所不同。有人能给我解释一下或者改进一下代码吗

import os

path = 'C:\\Users\\brentond\\Desktop\\Lower Thames Crossing'
for foldername, subfolders, filenames in os.walk(path):
    for subfolder in subfolders:
        for filename in filenames:
            if os.path.getsize(os.path.join(foldername, filename))>300000000:
                print(foldername + '\\' + filename)

您不必自己浏览子文件夹,而是自己浏览

从文档:

os.walk(top,top-down=True,onerror=None,followlinks=False)

产生 通过自上而下遍历目录树,查看目录树中的文件名 或者自下而上。对于树中以目录顶部为根的每个目录 (包括top本身),它生成一个3元组(dirpath、dirnames、, 文件名)

(强调矿山)

所以,只要做:

import os

path = 'C:\\Users\\brentond\\Desktop\\Lower Thames Crossing'
for foldername, subfolders, filenames in os.walk(path):
    for filename in filenames:
        if os.path.getsize(os.path.join(foldername, filename))>300000000:
            print(foldername + '\\' + filename)

跳过子文件夹循环

“漫游”已通过子文件夹

每个文件夹将仅被foldername一次。对于每个文件夹,其直接子文件将以文件名的形式显示,每次一次


其直接子文件夹将在子文件夹中显示,每个子文件夹一次。除非要直接对文件夹执行某些操作,而不是检查其内容,否则不需要循环子文件夹

嗨,我不想在循环之前打印(文件名),因为我只对打印大文件感兴趣。不过,我在这段代码中遇到了一个错误。回溯(最近一次调用):文件“”,第3行,如果os.path.getsize(os.path.join(foldername,filename))>300000000:文件“C:\Users\brentond\AppData\Local\Programs\Python\Python38-32\lib\genericpath.py”,第50行,在getsize返回os.stat(filename)中。st_size FileNotFoundError:[WinError 3]系统找不到指定的路径:“C:\\Users\\brentond\\Desktop\\Lower Thames Crossing\\PSSR\\Options Phase\认为这是因为zip文件中有zip文件,所以字符串很长?导入os#path='C:\\Users\\brentond\\Desktop\\Lower Thames Crossing',用于os.walk(path)中的文件夹名、子文件夹名和文件名:对于文件名中的文件名:如果os.path.getsize(os.path.join(foldername,filename))>30000000:print(foldername+'\\'+文件名),则错误是由278个字符长的路径引起的。通过将文件向上移动几级以缩短路径字符串,上述代码现在可以完美地运行,没有重复。谢谢大家