系統的說法從本質上講,我有一個python腳本,需要爲系統參數的文件名列表:正則表達式給出蟒蛇
filelist = sys.argv[1:]
我想文件列表是在所有文件以某個前綴開頭的目錄。我認爲最好的方法是使用正則表達式,但我不知道如何使它正常工作。
也就是說,我想是這樣
python test.py '^ex'
,產生filelist
包含所有在工作目錄下,以「EX」開頭的文件。
系統的說法從本質上講,我有一個python腳本,需要爲系統參數的文件名列表:正則表達式給出蟒蛇
filelist = sys.argv[1:]
我想文件列表是在所有文件以某個前綴開頭的目錄。我認爲最好的方法是使用正則表達式,但我不知道如何使它正常工作。
也就是說,我想是這樣
python test.py '^ex'
,產生filelist
包含所有在工作目錄下,以「EX」開頭的文件。
你不一定需要這個正則表達式。一個簡單的for循環可以完成這項工作。 例如
for filename in filelist:
if ex == filename[0:len(ex)]:
newFileList.append(filename)
這還沒有測試出來,可能需要小幅調整。 當然,正則表達式是很棒的工具,但上面的代碼很簡單。
你的循環可能會工作,除了我仍然需要在命令行輸入所有文件,或者在命令行指定它應該通過目錄中的所有文件。上面評論中的sotapme的方法確實很好地解決了這個問題,但是謝謝你指出了這一點。 – dd3 2013-02-11 01:51:26
這裏有一個很好的資源來理解正則表達式:http://rubular.com/ – mika 2013-02-10 22:33:33
如果你使用了''python test.py ex *'''''''''' - 它會創建文件名列表作爲''sys.argv [1:]''傳遞進來 - 除非你想要採取一種模式並且有像''glob.glob''這樣的東西爲你完成這項工作。 – sotapme 2013-02-10 22:41:06
@sotapme:我知道這很簡單!謝謝。 (我使用[this]管理了一個更復雜的版本(http://stackoverflow.com/a/3964691/743568),但你的答案更清晰)。如果你想在下面發表,我會很樂意接受它。 – dd3 2013-02-10 22:46:16