我想找到使用python在特定目录中是否存在任何文件。
像这样;
if os.path.exists('*.txt'):
# true --> do something
else:
# false --> do something
答案 0 :(得分:3)
您可以glob.iglob
使用next
:
import glob
if next(glob.iglob('*.txt'), False):
#do something
else:
#do something else
如果glog.iglob
返回一个空迭代器,那么将使用默认值False
。
或@ app2357112在评论中建议,我们只需使用any
,因为它返回False
一个空的可迭代。:
if any(glob.iglob('*.txt')):
#do something
else:
#do something else
答案 1 :(得分:2)
您可以将glob.glob
与通配符一起使用,并检查它是否返回任何内容。例如:
import glob
if glob.glob('*.txt'):
# file(s) exist -> do something
else:
# no files found
请注意glob.glob
返回与通配符匹配的文件列表(或空列表)。
答案 2 :(得分:1)
os.listdir()将为您提供目录中的所有内容 - 文件和目录
import os
if not os.listdir(dir):
#do something
else:
#do something
答案 3 :(得分:0)
对于那些从Google到达这里的人,您可以使用另一种解决方案来检查全局是否为空。
前面的答案本身就足够了,但是您也可以使用len()确定glob返回的文件数量,并将其用作比较。
if(len(glob.glob('*.txt')) == 0):
#Glob has no files
else:
#Continue
这将使您确认该glob是否包含文件。这还可以让您确认全局文件中是否有超过或少于特定数量的文件。