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

标签 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 filename in filenames:
            if os.path.getsize(os.path.join(foldername, filename))>300000000:
                print(foldername + '\\' + filename)

最佳答案

您不必自己探索子文件夹,walk为你做。

来自文档:

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

Generate the file names in a directory tree by walking the tree either top-down or bottom-up. For each directory in the tree rooted at directory top (including top itself), it yields a 3-tuple (dirpath, dirnames, filenames).

(强调我的)

所以,只需这样做:

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)

关于python - 在 Python 中使用 os.walk 查找大于 300MB 的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59154844/

相关文章:

c# - 只获取第一个项目与 SyndicateItem/foreach 的替代品

javascript - for 循环参数在 JavaScript 中无法正常工作

batch-file - 为什么在 if 语句中无法获取延迟扩展变量的子字符串?

mysql - 我想在 mysql 的 if 语句中使用用户 'substr'

javascript - JavaScript 中基本 for 循环和 for-in 循环的区别

c - C语言如何判断标识符是否为字符?

python - 在字典中查找匹配的键并将键替换为值

python - TensorFlow 2.0 中不再提供投影变换,我该怎么办?

python - 在python中将cx_Oracle.LOB数据转换为字符串

python - 如何将向量的每个元素提升为另一个向量的每个元素的幂?