2013-02-10 98 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