在目錄中我有很多的文件,命名或多或少是這樣的:選擇一個文件開始與給定的字符串
001_MN_DX_1_M_32
001_MN_SX_1_M_33
012_BC_2_F_23
...
...
在Python,我不得不寫,從目錄中選擇一個代碼文件以某個字符串開頭。例如,如果字符串是001_MN_DX
,Python將選擇第一個文件,依此類推。
我該怎麼辦?
在目錄中我有很多的文件,命名或多或少是這樣的:選擇一個文件開始與給定的字符串
001_MN_DX_1_M_32
001_MN_SX_1_M_33
012_BC_2_F_23
...
...
在Python,我不得不寫,從目錄中選擇一個代碼文件以某個字符串開頭。例如,如果字符串是001_MN_DX
,Python將選擇第一個文件,依此類推。
我該怎麼辦?
嘗試使用os.listdir
,os.path.join
和os.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爲長的解釋...
import os, re
for f in os.listdir('.'):
if re.match('001_MN_DX', f):
print f
你可以使用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
import os
prefixed = [filename for filename in os.listdir('.') if filename.startswith("prefix")]
它運作良好開始。謝謝。 :) – 2013-03-09 18:24:40
我會''和'001_MN_DX'在我''和i.startswith('001_MN_DX')' 由於文件'E_001_MN_DX.txt'將匹配原始代碼。 – karelv 2016-02-18 17:08:18