import os.path # glob is a simple and useful python module. # It uses simple regular expressions to match # directories and files for a given path. If # you've ever used the command line to 'ls' or # 'dir' the currently directory you may be aware # that the directory accepts * or ? or [] to # match patterns. glob is a python implementation # of this functionality. import glob import os # find all the .txt files in the current working directory print glob.glob('*.TXT') # output: # ['LICENSE.txt', 'NEWS.txt', 'README.txt'] # you can also specify a full path # Here I'm searching for dll files in python 2.6 print glob.glob('C:\Python26\DLLs\*.dll') # output: # ['C:\\Python26\\DLLs\\sqlite3.dll', # 'C:\\Python26\\DLLs\\tcl85.dll', # 'C:\\Python26\\DLLs\\tclpip85.dll', # 'C:\\Python26\\DLLs\\tk85.dll'] # If you are expecting a great deal of results # you should use the glob.iglob method that returns # matches as it goes and does not load everything # into memory first. # glob.iglob() example f = glob.iglob('C:\Python26\Lib\*') spitItOut = True while spitItOut: try: fileNameAndPath = f.next() # since glob gives you the full path you can # use the output with some of the os module's methods if os.path.isfile(fileNameAndPath): fileNameAndPath += " is a file." else: fileNameAndPath += " is not a file." print fileNameAndPath except StopIteration: spitItOut = False #output (snipped a bit...since there a lot): # C:\Python26\Lib\abc.py is a file. # ....[snip] # C:\Python26\Lib\compiler is not a file. # ...[another snip] # C:\Python26\Lib\getopt.py is a file. # C:\Python26\Lib\getopt.pyc is a file. # C:\Python26\Lib\getpass.py is a file. # C:\Python26\Lib\gettext.py is a file. # C:\Python26\Lib\glob.py is a file. # C:\Python26\Lib\glob.pyc is a file.
A python example based blog that shows how to accomplish python goals and how to correct python errors.
Thursday, October 1, 2009
Python - using glob to get lists of files and directories
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment