Python正则表达式以搜索列表中的项目

时间:2019-06-19 13:45:14

标签: python-2.7

我有一个字符串列表,并希望使用正则表达式将每个项目分成两个不同的函数列表,以字符串中的标签“ UP”或“ DOWN”来表示。

我的列表如下:

     > Files_list = ['e_DOWN_kegg.txt',
       'e_DOWN_reactome.txt',
       'e_UP_kegg.txt',
       'e_UP_reactome.txt',
       'go_enrich_DOWN.BP.txt',
       'go_enrich_DOWN.CC.txt',
       'go_enrich_DOWN.MF.txt',
       'go_enrich_UP.BP.txt',
       'go_enrich_UP.CC.txt',
       'go_enrich_UP.MF.txt']

列表中的每个项目都对应于我的工作目录中存在的.txt文件的标签。

我想用python实现一个脚本,其中:

  • 首先,使用正则表达式在列表项中搜索字符串UP或DOWN
  • 然后,我将把这些项目分为2个主要列表(UPlist和DOWNlist对象)。
  • 最后,我将使用上面的主列表生成2个.xlsx文件(向上和向下),其中每个.xlsx文件将存储与相应标签相关的所有文件(因此,我的最终结果是以获得两个.xlsx文件,每个文件将包含5张)。 虽然我已经知道要解决脚本的最后一部分,但在执行第一点时遇到了一些困难。

下面是我执行的脚本:

     > import pandas as pd  
     > import os  

     > Data_dir = 'Final_Output'  
     > Files_list = os.listdir(Data_dir)  
     > print type(Files_list)  
     `<type 'list'> `
     > Files_list = ['e_DOWN_kegg.txt',
       'e_DOWN_reactome.txt',
       'e_UP_kegg.txt',
       'e_UP_reactome.txt',
       'go_enrich_DOWN.BP.txt',
       'go_enrich_DOWN.CC.txt',
       'go_enrich_DOWN.MF.txt',
       'go_enrich_UP.BP.txt',
       'go_enrich_UP.CC.txt',
       'go_enrich_UP.MF.txt']


     > import re
     > mylist = Files_list
     > regex_UP = re.compile('.UP.') 
     > regex_UP
     `re.compile(r'.UP.)`

     > UPlist = filter (r.match, mylist) 
     > UPlist
     `[]`

我想按以下方法获得上列表和下列表:

    UPlist= ['e_UP_kegg.txt',
     'e_UP_reactome.txt',
     'go_enrich_UP.BP.txt',
     'go_enrich_UP.CC.txt',
     'go_enrich_UP.MF.txt']

    DOWNlist=['e_DOWN_kegg.txt',
       'e_DOWN_reactome.txt',
       'go_enrich_DOWN.BP.txt',
       'go_enrich_DOWN.CC.txt',
       'go_enrich_DOWN.MF.txt']

0 个答案:

没有答案