2013-02-10 161 views
0

系統的說法從本質上講,我有一個python腳本,需要爲系統參數的文件名列表:正則表達式給出蟒蛇

filelist = sys.argv[1:]

我想文件列表是在所有文件以某個前綴開頭的目錄。我認爲最好的方法是使用正則表達式,但我不知道如何使它正常工作。

也就是說,我想是這樣

python test.py '^ex' 

,產生filelist包含所有在工作目錄下,以「EX」開頭的文件。

+0

這裏有一個很好的資源來理解正則表達式:http://rubular.com/ – mika 2013-02-10 22:33:33

+1

如果你使用了''python test.py ex *'''''''''' - 它會創建文件名列表作爲''sys.argv [1:]''傳遞進來 - 除非你想要採取一種模式並且有像''glob.glob''這樣的東西爲你完成這項工作。 – sotapme 2013-02-10 22:41:06

+0

@sotapme:我知道這很簡單!謝謝。 (我使用[this]管理了一個更復雜的版本(http://stackoverflow.com/a/3964691/743568),但你的答案更清晰)。如果你想在下面發表,我會很樂意接受它。 – dd3 2013-02-10 22:46:16

回答

0

你不一定需要這個正則表達式。一個簡單的for循環可以完成這項工作。 例如

for filename in filelist: 
    if ex == filename[0:len(ex)]: 
     newFileList.append(filename) 

這還沒有測試出來,可能需要小幅調整。 當然,正則表達式是很棒的工具,但上面的代碼很簡單。

+0

你的循環可能會工作,除了我仍然需要在命令行輸入所有文件,或者在命令行指定它應該通過目錄中的所有文件。上面評論中的sotapme的方法確實很好地解決了這個問題,但是謝謝你指出了這一點。 – dd3 2013-02-11 01:51:26