2015-02-24 56 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

相關問題