如何验证文件是否在目录中

How to verify if a file is in a directory

我需要验证 python 中的目录中是否存在具有特定名称的文件。

我的目录:

D:\mydirectory\img\

我正在使用 python-decouple 来传递我在“.venv”中的目录方式

os.path.exists(config('PATH_IMG'))

我需要一种方法来验证文件 'photo.jpg' 是否在 'PATH_IMG' 中。

我尝试使用 os 库,但是,在官方文档中没有说明如何使用。

另外,有些方法需要用到循环for,那就是把代码复杂度放大,比如用循环for。

我该怎么做?

我猜你想知道目录中是否存在文件。

这可能对您有帮助:

import os
directory = <your_path>

for r, d, f in os.walk(directory):
   for file in f:
      if file == "photo.jpg":
         print("Found it!")

os.walk returns 3 个变量,根目录,directory_name 和文件名。

文件名在列表中,因此:

对于列表中的每个值,

如果该值 == 您要查找的值

print 找到了。

编辑:不太确定为什么,但您似乎不想在主代码中使用 for 循环。

这样做:

def findfile(directory, filename):
   for r, d, f in os.walk(directory):
      for file in f:
         if file == filename:
             print("Found it!")

findfile(directory, "photo.jpg")

现在您可以在需要时调用该函数,这应该 "reduce" 编码复杂度

您可以使用 os.listdir 函数,它 returns 目录中的文件列表,因此:

if "photo.jpg" in os.listdir(directory):
  return True

还有函数:

os.path.exists(directory + "/" + "photo.jpg")

直接returns如果文件存在

构造文件的路径并使用os.path.isfile检查文件是否存在。

imagefile = os.path.join(config('PATH_IMG'), 'photo.jpg')
print(os.path.isfile(imagefile))