使用 glob 读取目录中的图像文件名称前的隐藏点下划线 ._
Hidden dot underscore ._ before name of image files in a directory while reading them using glob
我正在尝试从目录中读取图像。
该目录包含名为 like-
的图像
person1_bacteria_1.jpeg
person1_bacteria_2.jpeg
person2_bacteria_3.jpeg
我正在尝试使用 glob 函数抓取这些图像。
images = images_directory.glob('*.jpeg')
问题是,当我打印刚刚阅读的文件的目录时,我发现有些文件前面有点下划线(._)。
例如-
dir/._person1_bacteria_2.jpeg
我再三检查目录下的图片文件,都没有图片名前面带._的。
如何避免读取名称前面有点下划线 (._) 的文件?
我在 运行 一台 windows 机器上。
我认为这些文件只是缩略图文件。如果您查看 os.path.getsize(文件名),您可能可以证实这个假设。
您看不到这些文件的原因是它们可能被标记为隐藏文件。
尝试配置您的 windows 资源管理器,使其显示所有文件。 ( https://support.microsoft.com/en-us/help/14201/windows-show-hidden-files )
如果 glob.glob
产生了带有意外文件名的结果,您可以使用带有条件过滤器的理解列表使用以下代码过滤它们
import os
import glob
images = glob.glob(os.path.join(os.getcwd(), '*.jpeg'))
images = [image for image in images if not os.path.basename(image).startswith('._')]
如果目录包含以圆点开头的文件won’t be matched by default。 globe returns 一个列表,您可以编写此代码来添加普通文件和隐藏文件:
import glob
images = glob.glob('*.jpeg') + glob.glob('.*.jpeg')
UPDATE:如果您想排除以 ._
开头的文件,您可以使用此模式:
images = glob.glob("[!._]*.jpeg")
我正在尝试从目录中读取图像。 该目录包含名为 like-
的图像person1_bacteria_1.jpeg
person1_bacteria_2.jpeg
person2_bacteria_3.jpeg
我正在尝试使用 glob 函数抓取这些图像。
images = images_directory.glob('*.jpeg')
问题是,当我打印刚刚阅读的文件的目录时,我发现有些文件前面有点下划线(._)。
例如-
dir/._person1_bacteria_2.jpeg
我再三检查目录下的图片文件,都没有图片名前面带._的。
如何避免读取名称前面有点下划线 (._) 的文件?
我在 运行 一台 windows 机器上。
我认为这些文件只是缩略图文件。如果您查看 os.path.getsize(文件名),您可能可以证实这个假设。
您看不到这些文件的原因是它们可能被标记为隐藏文件。 尝试配置您的 windows 资源管理器,使其显示所有文件。 ( https://support.microsoft.com/en-us/help/14201/windows-show-hidden-files )
如果 glob.glob
产生了带有意外文件名的结果,您可以使用带有条件过滤器的理解列表使用以下代码过滤它们
import os
import glob
images = glob.glob(os.path.join(os.getcwd(), '*.jpeg'))
images = [image for image in images if not os.path.basename(image).startswith('._')]
如果目录包含以圆点开头的文件won’t be matched by default。 globe returns 一个列表,您可以编写此代码来添加普通文件和隐藏文件:
import glob
images = glob.glob('*.jpeg') + glob.glob('.*.jpeg')
UPDATE:如果您想排除以 ._
开头的文件,您可以使用此模式:
images = glob.glob("[!._]*.jpeg")