我的問題與以下內容非常相似:How to get a Substring from list of file names。我是Python的新手,並且更喜歡Python(或R)的類似解決方案。我想查看一個目錄並從每個適用的文件名中提取一個特定的子字符串,並將其輸出爲矢量(首選),列表或數組。例如,假設我有以下文件名目錄:從Python或R中的文件名列表中提取子字符串
data_ABC_48P.txt
data_DEF_48P.txt
data_GHI_48P.txt
other_96.txt
another_98.txt
我想引用目錄和提取下列作爲字符向量(對於R中使用)或列表:
"ABC", "DEF", "GHI"
我試過如下:
from os import listdir
from os.path import isfile, join
files = [ f for f in listdir(path) if isfile(join(path,f)) ]
import re
m = re.search('data_(.+?)_48P', files)
,但我得到了以下錯誤:
TypeError: expected string or buffer
files
是type
list
In [10]: type(files)
Out[10]: list
即使我最終想這個特徵向量作爲輸入R代碼裏面,我們試圖給我們所有的「腳本」的過渡到Python和使用[R僅用於數據分析,所以Python解決方案會很棒。我也使用Ubuntu,所以cmd行或bash腳本解決方案也可以工作。提前致謝!
@AvinashRaj感謝名單了很多!!!!!! – vks 2014-12-05 17:27:34