Python中的Regex来匹配一个fold中的所有文件

2024-09-30 04:36:28 发布

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

我不擅长正则表达式。 我正在根据文件名在文件夹中查找文件。大多数文件名的格式是GSE1234_series_matrix.txt,因此我一直使用os.path.join("files", GSE_num + "_series_matrix.txt")。但是,一些文件的名称类似于GSE1234-GPL22_series_matrix.txt。我不知道如何处理所有以GSE编号开头、以\u系列结尾的文件_矩阵.txt一起,可能在一个声明中。我真的很感激你的帮助。在

编辑-我把这些系列矩阵文本文件放在一个文件夹中,我提到了使用路径连接的路径。我还输入了一个文本文件,其中包含所有的GSE编号。这样,它只对选定的GSE编号运行脚本。所以不是文件夹中的所有内容都在GSE num list中,并且列表只有GSE编号而不是GPL。例如文件GSE1234-GPL22_系列_矩阵.txt列表中应该是GSE1234。在


Tags: 文件路径txt文件夹列表文件名矩阵matrix
3条回答
凯文的回答太好了!如果要使用regex,可以执行以下操作:

^GSE\d+.*series_matrix.txt$

这将匹配任何以GSE和数字开头,以series结尾的内容_矩阵.txt在

完全跳过使用正则表达式。在

good_filenames = [name for name in filenames if name.startswith("GSE") and name.endswith("_series_matrix.txt")]

你可以用glob。根据模式中包含的路径的多少,您根本不必担心使用os.path.join。在

import glob
good_filenames = glob.glob('/your/path/here/GSE*_series_matrix.txt')

退货:

^{pr2}$

相关问题 更多 >

    热门问题