从子字符串中查找文件名

2024-10-01 09:30:40 发布

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

我有一个我保存的文件名列表,如下所示:

filelist = os.listdir(mypath)

现在,假设我的一个文件像“KRAS_P01446_3GFT_SOMETHING_SOMETHING.txt”。在

但是,我提前知道的是我有一个名为“KRAS_P01446_3GFT_*”的文件。我怎样才能从文件列表中只使用“KRAS_P01446_3GFT_*”获得完整的文件名?在

作为一个更简单的例子,我做了如下:

^{pr2}$

假设我有字符串"hi"。如何使它返回mylist[0] = "hi_there"。在

谢谢!在


Tags: 文件字符串txt列表os文件名hisomething
3条回答

如果你的意思是“给我所有以前缀开头的文件名”,那么这很简单:

[fname for fname in mylist if fname.startswith('hi')]

如果你指的是更复杂的东西——例如,像“somet_xufile”匹配“some_good_file”和“some_bad_file”这样的模式,那么看看regex模块。在

在第一个示例中,您可以使用glob模块:

import glob
import os
print '\n'.join(glob.iglob(os.path.join(mypath, "KRAS_P01446_3GFT_*")))

执行此操作,而不是执行os.listdir的。在

第二个例子似乎与第一个(X-Y problem?),但下面是一个实现:

^{2}$
mylist = ["hi_there", "bye_there","hello_there"]
partial = "hi"
[fullname for fullname in mylist if fullname.startswith(partial)]

相关问题 更多 >