2005年09月27日 星期二 23:01
问个问题啊!各位大侠,今天在这练习这个正则的时候,便试着做个搜索文件的程序!但是有点问题一直弄不过去 def find_file(filename,dirname,names): p=re.compile(filename) for i in range(len(names)): if p.search(names[i]): print os.path.join(dirname,names[i]) 这个函数可以执行一部分功能,但是如果输入"*.txt"或者其他以特殊字符开头的就会出错!各位大虾能不能够指点一下,或者可以有其他的方法! 谢谢,小弟初学python! -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050927/0b1d05fb/attachment.htm
2005年09月27日 星期二 23:14
不能直接用' *.txt ' ,这个不是正则表达, 在正则里 * 号只是表示 没有 或者 很多, 具体的你得查一下手册. 如果要用你说的这种' *.txt ' 表示目录中的txt文件, 可以用glob, 具体用法在手册,比如这样: >>> import glob >>> glob.glob('./[0-9].*') ['./1.gif', './2.txt'] >>> glob.glob('*.gif') ['1.gif', 'card.gif'] >>> glob.glob('?.gif') ['1.gif'] On 9/27/05, Ghost Fox <ghostfox2008 at gmail.com> wrote: > > > def find_file(filename,dirname,names): > p=re.compile(filename) > for i in range(len(names)): > if p.search(names[i]): > print os.path.join(dirname,names[i]) > > 这个函数可以执行一部分功能,但是如果输入"*.txt"或者其他以特殊字符开头的就会出错!各位大虾能不能够指点一下,或者可以有其他的方法! > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050927/60c3e1f6/attachment.html
2005年09月28日 星期三 11:03
在 05-9-27,Ghost Fox<ghostfox2008 at gmail.com> 写道: > 问个问题啊!各位大侠,今天在这练习这个正则的时候,便试着做个搜索文件的程序!但是有点问题一直弄不过去 > > def find_file(filename,dirname,names): > p=re.compile(filename) > for i in range(len(names)): > if p.search(names[i]): > print os.path.join(dirname,names[i]) > > 这个函数可以执行一部分功能,但是如果输入"*.txt"或者其他以特殊字符开头的就会出错!各位大虾能不能够指点一下,或者可以有其他的方法! *.txt是不是应该这样啊\w.txt >>> p = re.compile('\w.txt') >>> if p.search('ok.txt'): print 'ok' else: print 'not ok' ok
2005年09月28日 星期三 11:08
> *.txt是不是应该这样啊\w.txt > >>> p = re.compile('\w.txt') > >>> if p.search('ok.txt'): > print 'ok' > else: > print 'not ok' 最好是 \w+ 因为\w只配置一个字符。 -- I like python! My Donews Blog: http://www.donews.net/limodou
2005年09月28日 星期三 11:51
好像标准库里的glob模块可以做类似的事情?
2005年09月28日 星期三 17:39
>好像标准库里的glob模块可以做类似的事情? 好象是这样的,不过我并不是要做具体的开发,只是练习! 我知道*.txt不是正则表达式,我说的*.txt是说用户想查找所有的txt文件那种意思!可以办到吗?还是用if判断用户的输入来控制!比如用户输了"*.txt"那么我就写"\w+.txt" Love Python! python-chinese at lists.python.cn -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050928/092f3e59/attachment.html
Zeuux © 2025
京ICP备05028076号