can't pass command-line arguments
BartlebyScrivener
rpdooling at gmail.com
Mon Apr 10 09:14:51 EDT 2006
Tim,
I had not seen the thread you linked to. I learned something, but it
still doesn't explain whatever is happening on my machine. When I run
assoc and ftype I get exactly the results you say I need to run the
scripts properly. However, this simple script (printargs.py) seems to
work whether I type the .py extention or not.
import os
import sys
print sys.argv
print sys.argv[0]
print sys.argv[1]
print sys.argv[2]
Whereas this more complex script (cbfindfiles.py) will NOT work unless
I type the .py extension. Otherwise the arguments don't seem to pass.
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__":
for path in all_files(sys.argv[1], sys.argv[2]):
print path
It's not big deal. I don't mind typing the .py extension. It's just a
curious quirk. Thanks for your help.
Rick
More information about the Python-list
mailing list