2013-03-09 49 views
16

在目錄中我有很多的文件,命名或多或少是這樣的:選擇一個文件開始與給定的字符串

001_MN_DX_1_M_32 
001_MN_SX_1_M_33 
012_BC_2_F_23 
... 
... 

在Python,我不得不寫,從目錄中選擇一個代碼文件以某個字符串開頭。例如,如果字符串是001_MN_DX,Python將選擇第一個文件,依此類推。

我該怎麼辦?

回答

22

嘗試使用os.listdir,os.path.joinos.path.isfile
在長格式(與環路),

import os 
path = 'C:/' 
files = [] 
for i in os.listdir(path): 
    if os.path.isfile(os.path.join(path,i)) and '001_MN_DX' in i: 
     files.append(i) 

代碼,與列表內涵是

import os 
path = 'C:/' 
files = [i for i in os.listdir(path) if os.path.isfile(os.path.join(path,i)) and \ 
     '001_MN_DX' in i] 

檢查here爲長的解釋...

+0

它運作良好開始。謝謝。 :) – 2013-03-09 18:24:40

+5

我會''和'001_MN_DX'在我''和i.startswith('001_MN_DX')' 由於文件'E_001_MN_DX.txt'將匹配原始代碼。 – karelv 2016-02-18 17:08:18

5
import os, re 
for f in os.listdir('.'): 
    if re.match('001_MN_DX', f): 
     print f 
3

你可以使用os模塊列出目錄中的文件。

如:查找當前目錄下的所有文件,其中名稱以001_MN_DX

import os 
list_of_files = os.listdir(os.getcwd()) #list of files in the current directory 
for each_file in list_of_files: 
    if each_file.startswith('001_MN_DX'): #since its all type str you can simply use startswith 
     print each_file 
24
import os 
prefixed = [filename for filename in os.listdir('.') if filename.startswith("prefix")] 
相關問題