2015-02-24 47 views
0

我有一个文件夹,其中包含具有不同数字扩展名的文件名。例如:用于选择不同数字扩展名的数据文件的范围

run1_101.txt 
run2_103.txt 
exp4_104.txt 
sulphur1_105.txt 

每次执行不同的实验时,该文件夹都会随新文件一起更新。

我需要从每个txt文件中提取1列(峰面积)。问题是,我有大约100个文件需要执行此操作,而某些文件可能有不同的名称(name_101等)。

我想编写一个函数,它将在我给出的范围内选择文件夹中的文件。例如。 :

def select_file(a,b, file_name): 
    file_range = np.arange(a,b) 
    if file_range in file_name: 
     return file_name 

然后我想编写一些其他函数来为每个文件选择我想要的列并使用pandas将其写入DataFrame。

+0

也许glob可以帮到你吗? https://docs.python.org/2/library/glob.html – danielfranca 2015-02-24 11:39:55

+0

是的,这将是非常有用的谢谢 – Joey 2015-02-24 11:47:02

回答

1

可以使用水珠库匹配文件名模式:https://docs.python.org/2/library/glob.html

即:

list = []  
    for filelist in [glob.glob(pattern) for pattern in ['*%i*' % x for x in range(a,b+1)] if glob.glob(pattern)]: 
     list += filelist 

这样,你搜索你指定的范围之间的所有模式,在当前目录搜索。

+0

请详细说明您的答案,最好是可运行的代码,目前这不仅仅是一个链接的答案 – EdChum 2015-02-24 11:55:40