擅长:python、mysql、java
<p>除非您知道“complete”是什么意思,否则您不能显示<em>percentage complete</em>。</p>
<p>当<code>os.walk</code>正在运行时,它不知道最终将迭代多少个文件和文件夹:返回类型<code>os.walk</code>没有<code>__len__</code>。它必须从目录树的一路往下看,枚举所有的文件和文件夹,以便对它们进行计数。换句话说,<code>os.walk</code>必须做两次所有的工作,才能告诉您它将生产多少个项目,这是低效的。</p>
<p>如果在显示进度条时已经死机,则可以将数据假脱机到内存列表中:<code>list(os.walk(target_dir))</code>。我不推荐这个。如果你正在遍历一个大目录树,这可能会消耗大量内存。更糟糕的是,如果<code>followlinks</code>是<code>True</code>,并且您有一个循环目录结构(子目录链接到其父目录),那么它可能永远循环,直到您用完RAM。</p>