文件和目录数量波动

文件和目录数量波动

情况:我有一个Python脚本,它将递归地、单独地计算文件和目录的总数。下面是代码:

def traverse(top):
    filecount = 0
    dircount = 0
    for root, dirs, files in os.walk(top):
        for f in files:
            if dirs: dircount += 1
            elif files: filecount += 1
            else:
                print("Error")
                break
    print("Num of dir: " + dircount)
    print("Num of files: " + filecount)

问题:几乎每次运行代码时,我都会得到不同数量的目录和文件。

问题:介意提出文件和目录数量波动的原因吗?也许这就是 Linux 的运行方式?

附加信息:只是想确保我的脚本的这一部分对整个程序非常重要

答案1

正在运行的 Unix 系统在正常操作期间每隔一段时间就会创建临时文件和目录。

仅在编辑器中打开文件或发送电子邮件可能会创建一两个临时文件,而浏览网页可能会在短时间内创建和删除数百个文件。此外,图形桌面环境可能会执行缓存和其他您通常不会注意到的操作,这些操作会创建和删除临时文件。

根据您的顶级目录是什么,您很可能会覆盖经常变化的目录,例如/tmp和 下的所有目录/var以及您的主目录。

答案2

dirs 是当前(根)目录中的目录名列表,files 是当前目录中的文件名列表。

我想你想要更多这样的东西:

def traverse(top):
    filecount = 0
    dircount = 0
    for root, dirs, files in os.walk(top):
        dircount += len(dirs)
        filecount += len(files)
    print("Num of dir: " + dircount)
    print("Num of files: " + filecount)

相关内容