擅长:python、mysql、java
<p>唯一定义<code>found</code>的地方是在<code>if</code>块中,因此如果找不到<code>abc.zip</code>,则<code>found</code>将是未定义的。而且,即使找到了<code>abc.zip</code>,并且定义了<code>found</code>,它也被定义为<code>searchfile()</code>的局部变量,您的主作用域将无法访问它。您应该在主作用域中将其初始化为全局变量,并在<code>searchfile()</code>中将其声明为全局变量,以便对它的修改可以反映在主作用域中:</p>
<pre><code>def searchfile():
global found
for file in os.listdir('/user/adam/datafiles'):
if fnmatch.fnmatch(file, 'abc.zip'):
found = True
found = False
searchfile()
if found:
print('File exists')
else:
print('File not found')
</code></pre>
<p>但是使用全局变量实际上是没有必要的,因为您可以简单地从<code>searchfile()</code>返回<code>found</code>作为返回值:</p>
<pre><code>def searchfile():
for file in os.listdir('/user/adam/datafiles'):
if fnmatch.fnmatch(file, 'abc.zip'):
return True
return False
if searchfile():
print('File exists')
else:
print('File not found')
</code></pre>