can't pass command-line arguments
BartlebyScrivener
rpdooling at gmail.com
Mon Apr 10 09:48:05 EDT 2006
Tim,
No conflicting bat file.
Script name cbfindfiles.py
import os
import fnmatch
import sys
def all_files(root, patterns='*', single_level=False,
yield_folders=False):
"""walks the directory tree starting at root and finds all files
matching patterns"""
# Expand patterns from semicolon-separated string to list
patterns = patterns.split(';')
for path, subdirs, files in os.walk(root):
if yield_folders:
files.extend(subdirs)
files.sort()
for name in files:
for pattern in patterns:
if fnmatch.fnmatch(name, pattern):
yield os.path.join(path, name)
break
if single_level:
break
if __name__ == "__main__":
print sys.argv
for path in all_files(sys.argv[1], sys.argv[2]):
print path
If I run
cbfindfiles.py d:/ *emacs*
from the command prompt I get:
['d:\\python\\cbfindfiles.py', 'd:/', '*emacs*']
followed by a list of matching files
If I run
cbfindfiles d:/ *emacs*
If get an empty command prompt back.
Oh, well.
Not worth troubling over.
Thank you again.
Rick
More information about the Python-list
mailing list