lists and files question

John Hunter jdhunter at ace.bsd.uchicago.edu
Wed Jul 23 15:04:37 CEST 2003


Others have already answered your question - I just want to point out
a few of other things

    import os, re, string
    setpath = raw_input("Enter the path: ")
    for root, dirs, files in os.walk(setpath):
    	id = re.compile('Microsoft Excel Worksheet')

1) id is a built in function; you may not want to override it with
   your variable name

   >>> x = 1
   >>> id(x)
   135313208

2) The reason to use re.compile is for efficiency.  There is no need
   to call it inside the loop, since you're just recompiling the same
   regex over and over again.  Instead, compile the regex outside the
   loop

    >>> rgx = re.compile('[A-Z]+')
    >>> for some_text in some_list:
    ...     m = rgx.match(some_text)

3) If you want to match 'Microsoft Excel Worksheet', you don't need
   regular expressions since this is a string literal.  You will
   probably be better off just using the string find method, as in

   s.find('Microsoft Excel Worksheet')

4) You may want to look at the path module, which provides a nice
   interface for walking over files:
   http://www.jorendorff.com/articles/python/path/

    >>> from path import path
    >>> xldir = path(setpath)
    >>> for f in xldir.files('*.xls'):
    ...     print f.read().find('Microsoft Excel Worksheet')

Cheers,
John Hunter





More information about the Python-list mailing list