gpt4 book ai didi

Python fnmatch,检查存在的文件

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:26 24 4
gpt4 key购买 nike

我有一个任务,我想检查目录中是否存在特殊文件 *.part。如果文件存在则再次检查,如果不存在,则打印“文件已删除”。

我使用 os.listdir(),接下来对于 lisdir 中的每个文件,我使用 fnmatch(file, '*.part'),接下来再次获取 lisdir 并递归地涉及相同的函数。

当我删除此文件时,fnmatch 返回“true”。我不明白......“为什么”?

这是我的代码:

import os, fnmatch

def func(filenames):
for f in filenames:
while fnmatch.fnmatch(f, '*.part'):
filenames = os.listdir("/home/gromov/Downloads/test/")
func(filenames)


if __name__ == "__main__":
func(os.listdir("/home/gromov/Downloads/test/"))
print("file was deleted")

谢谢!

最佳答案

即使您递归地调用函数 func,第一次迭代中的 f 也不会改变,而 fnmatch 仅检查字符串,如果文件存在。

使用os.path.exists: 导入操作系统、fnmatch、时间

def func(filenames):
for f in filenames:
if fnmatch.fnmatch(f, '*.part'):
# wait until deleted
while os.path.exists(f):
time.sleep(0.1)

关于Python fnmatch,检查存在的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41362151/

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