首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从子字符串中查找文件名

从子字符串中查找文件名
EN

Stack Overflow用户
提问于 2012-07-20 05:16:19
回答 4查看 2.8K关注 0票数 1

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

代码语言:javascript
复制
filelist = os.listdir(mypath)

现在,假设我的一个文件类似于"KRAS_P01446_3GFT_SOMETHING_SOMETHING.txt“。

但是,我预先知道的是我有一个名为"KRAS_P01446_3GFT_*“的文件。如何才能仅使用"KRAS_P01446_3GFT_*“从文件列表中获取完整的文件名?

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

代码语言:javascript
复制
mylist = ["hi_there", "bye_there","hello_there"]

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

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-20 05:21:20

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

代码语言:javascript
复制
import glob
import os
print '\n'.join(glob.iglob(os.path.join(mypath, "KRAS_P01446_3GFT_*")))

请执行此操作,而不是os.listdir

第二个示例似乎与第一个示例(X-Y problem?)有些微妙的关联,但这里有一个实现:

代码语言:javascript
复制
mylist = ["hi_there", "bye_there","hello_there"]
print '\n'.join(s for s in mylist if s.startswith("hi"))
票数 2
EN

Stack Overflow用户

发布于 2012-07-20 05:20:50

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

代码语言:javascript
复制
[fname for fname in mylist if fname.startswith('hi')]

如果您指的是更复杂的东西--例如,像"some_*_file“这样的模式匹配"some_good_file”和"some_bad_file",那么可以看看regex模块。

票数 0
EN

Stack Overflow用户

发布于 2012-07-20 05:21:12

代码语言:javascript
复制
mylist = ["hi_there", "bye_there","hello_there"]
partial = "hi"
[fullname for fullname in mylist if fullname.startswith(partial)]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11569432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档