我有一个我保存的文件名列表,如下所示:
filelist = os.listdir(mypath)现在,假设我的一个文件类似于"KRAS_P01446_3GFT_SOMETHING_SOMETHING.txt“。
但是,我预先知道的是我有一个名为"KRAS_P01446_3GFT_*“的文件。如何才能仅使用"KRAS_P01446_3GFT_*“从文件列表中获取完整的文件名?
作为一个更简单的例子,我做了以下几点:
mylist = ["hi_there", "bye_there","hello_there"]假设我有一个字符串"hi"。我如何让它返回mylist[0] = "hi_there"。
谢谢!
发布于 2012-07-20 05:21:20
在第一个示例中,您可以只使用glob模块:
import glob
import os
print '\n'.join(glob.iglob(os.path.join(mypath, "KRAS_P01446_3GFT_*")))请执行此操作,而不是os.listdir。
第二个示例似乎与第一个示例(X-Y problem?)有些微妙的关联,但这里有一个实现:
mylist = ["hi_there", "bye_there","hello_there"]
print '\n'.join(s for s in mylist if s.startswith("hi"))发布于 2012-07-20 05:20:50
如果你的意思是“给我所有的文件名都以某个前缀开头”,那么这很简单:
[fname for fname in mylist if fname.startswith('hi')]如果您指的是更复杂的东西--例如,像"some_*_file“这样的模式匹配"some_good_file”和"some_bad_file",那么可以看看regex模块。
发布于 2012-07-20 05:21:12
mylist = ["hi_there", "bye_there","hello_there"]
partial = "hi"
[fullname for fullname in mylist if fullname.startswith(partial)]https://stackoverflow.com/questions/11569432
复制相似问题