gpt4 book ai didi

python - 检查目录是否包含具有给定扩展名的文件

转载 作者:太空狗 更新时间:2023-10-29 17:01:11 25 4
gpt4 key购买 nike

我需要检查当前目录并查看是否存在具有扩展名的文件。我的设置(通常)只有一个具有此扩展名的文件。我需要检查该文件是否存在,如果存在,则运行命令。

但是,它会多次运行 else,因为有多个文件具有备用扩展名。它必须只在文件不存在时运行 else,而不是每隔一个文件运行一次。我的代码示例如下。


目录结构如下:

dir_________________________________________
\ \ \ \
file.false file.false file.true file.false

当我运行时:

import os
for File in os.listdir("."):
if File.endswith(".true"):
print("true")
else:
print("false")

输出是:

false
false
true
false

问题是如果我用有用的东西替换 print("false"),它会运行多次。

编辑: 我在 2 年前问过这个问题,现在仍然看到非常温和的事件,因此,我想把这个留给其他人:http://book.pythontips.com/en/latest/for_-_else.html#else-clause

最佳答案

您可以使用 forelse block :

for fname in os.listdir('.'):
if fname.endswith('.true'):
# do stuff on the file
break
else:
# do stuff if a file .true doesn't exist.

附加到 forelse 将在循环内的 break 执行时运行。如果您认为 for 循环是一种搜索内容的方式,那么 break 会告诉您是否找到了该内容。 else 在您没有找到您正在搜索的内容时运行。

或者:

if not any(fname.endswith('.true') for fname in os.listdir('.')):
# do stuff if a file .true doesn't exist

此外,您可以使用 glob模块而不是 listdir:

import glob
# stuff
if not glob.glob('*.true')`:
# do stuff if no file ending in .true exists

关于python - 检查目录是否包含具有给定扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33400682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com