<p>此代码是问题所在:</p>
<pre><code>if int(fileSize) < 100000000:
continue
os.unlink(filename)
</code></pre>
<p>在调用<code>os.unlink</code>之前,有一个<code>continue</code>语句,它跳到循环的下一个迭代。在</p>
<p>我想你是想让<code>os.unlink</code>超出这个条件。只是没有发现:</p>
^{pr2}$
<p><strong>更新</strong></p>
<p>正如上面的注释所指出的,您还需要构建一个完整的路径:</p>
<pre><code>os.unlink(os.path.join(foldername, filename))
</code></pre>
<p><strong>更新2</strong></p>
<p>您可以反转条件的逻辑以简化代码,而不是<code>if ...: continue</code>。以下是我清理后的代码版本:</p>
<pre><code>import os
def del_unneeded(folder):
# Walk the folder tree with os.walk() and search for files of more than
# 100MB using os.path.getsize()
for dirpath, dirnames, filenames in os.walk(folder):
for filename in filenames:
full_path = os.path.join(dirpath, filename)
if os.path.getsize(full_path) > 100000000:
print('Deleting {}...'.format(full_path))
os.unlink(full_path)
del_unneeded('C:\\Users\\DELL\\Desktop\\flash')
print("Done")
</code></pre>
<p>其他细微变化:</p>
<ul>
<li>我删除了<code>int(...)</code>,因为<code>os.path.getsize</code>已经返回了一个<code>int</code>。在</li>
<li>我使用了一个完整的路径,由<code>os.walk</code>生成的组件组成。在</li>
<li>我重命名了一些变量以符合<code>os.walk</code>文档和Python编码风格(<code>snake_case</code>而不是<code>camelCase</code>)。在</li>
<li>我使用<code>str.format</code>而不是字符串连接。在</li>
</ul>