如何在目录中的多个相同文件名中只获取第一个文件名?

2024-06-06 18:05:45 发布

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

实际上,我正在读取文件名并获取与某个目录中的前缀值=065572匹配的文件。所以我在同一个目录下有如下的文件名。你知道吗

- image_read
    -065572_sometext.png
    -065572_file1_sometext_001.jpg
    -065572_file2_sometext_002.jpg

有两种情况 1我只想取第一个文件名。065572_sometext.png。我在@幻觉评论中找到了解决方法。 2我想取另外两个文件名。065572_file1_sometext_001.jpg065572_file2_sometext_002.jpg。有人能帮我解决这个案子吗。你知道吗

对于第(1)种情况,按以下代码操作

default =''
find_filename = [next((os.path.basename(x) for x in (glob.iglob('/home/username' + '/**/' + value + '*', recursive=True))),default)]
filename = ", ".join(find_filename)
filename_list.append(filename)

对于案例(2),我需要一个解决方案。怎么处理?你知道吗


Tags: 文件image目录defaultreadpng文件名情况
1条回答
网友
1楼 · 发布于 2024-06-06 18:05:45

所以,您想得到存在于image_read文件夹中的第一个文件的名称,即"065572_sometext.png",对吗? 要做到这一点,请写下:

default = "No files found" #value to return if no file found
first_file = next((join(path_to_image_read, f) for f in os.listdir(path) if isfile(join(path, f))), default)

根据this link,如果在目录中找不到任何文件,在本例中image_read,它将抛出StopIteration异常。所以,要么处理它,要么如上所述提供一个默认值。你知道吗

这意味着如果在image_read文件夹中找不到文件,它将返回"No files found",否则它将返回"065572_sometext.png"

希望这有帮助

相关问题 更多 >