python如果文件不存在则失败

2024-04-23 22:55:20 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个循环,检查文件夹是否包含*.zip文件

for file in glob.glob( os.path.join(rootdir, '*.zip')):
        print "zip", file
        #Check if file does not exist
        if not os.path.exists(file):
            print "No files"
            #return
        else:
            some code

现在,如果文件存在,则可以使用其他方法,但如果没有zip文件,则不会打印

有什么建议吗?? 谢谢你


Tags: 文件pathin文件夹forifoscheck
3条回答

如果该文件夹中没有zip文件,则永远不会执行for循环。

就像

for i in []:
    print "Hello"

不打印任何内容,因为没有要迭代的元素。

如果需要该错误消息,可以执行以下操作:

filelist = glob.glob(os.path.join(rootdir, '*.zip'))
if filelist:
    for f in filelist:
        # some code
else:
    print "No files"

如果没有zip文件,则在空列表上循环,请尝试以下操作:

files = glob.glob( os.path.join(rootdir, '*.zip'))
if len(files) != 0:
    for file in files:
        print "zip", file
        #Check if file does not exist
        if not os.path.exists(file):
            print file, "does not exist"
            #return
        else:
            some code
else:
    print "No files"

glob()文件返回找到的所有匹配项。如果找不到与您提供的模式匹配的项,则返回空列表:[]。这和贝壳球的图案不同!在大多数shell中,没有以foo*开头的文件时,foo*只会将单词foo*赋给命令;但这不是glob()所做的。

相关问题 更多 >