用于选择不同数字扩展名的数据文件的范围
问题描述:
我有一个文件夹,其中包含具有不同数字扩展名的文件名。例如:用于选择不同数字扩展名的数据文件的范围
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。
答
可以使用水珠库匹配文件名模式: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
也许glob可以帮到你吗? https://docs.python.org/2/library/glob.html – danielfranca 2015-02-24 11:39:55
是的,这将是非常有用的谢谢 – Joey 2015-02-24 11:47:02