Pieter Edelman wrote: > ./myprog.py -t *.gpx *.jpg > > This seems like a sensible option at first sight, but it's > difficult to implement because the wildcard is expanded by the > shell,
(in *nix only) > so sys.argv gets a list containing "-t", all .gpx files and > all .jpg files. With this list, there's no way to tell which files > belong to the "-t" switch and which are arguments (other than > using the extension). > > One possible way to work around this is to get the raw command > line and do the shell expansions ourselves from within Python. > Ignoring the question of whether it is worth the trouble, does > anybody know if it is possible to obtain the raw (unexpanded) > command line? Breaking the "de-facto standards" isn't a good idea, IMHO. > Alternatively, does anybody have suggestion of how to do this in > a clean way? First, you could define another wildcard character, or let users escape the * like this: ./myprog.py -t \*.gpx \*.jpg Let users give a list of files to process, and default to looking for the same filename without image extension and with ".gpx". E. g.: ./myprog.py -t .gpx *.jpg will expand to: ./myprog.py -t .gpx a.jpg b.jpg [...] z.jpg What your program's "policy" would be depends on its exact function. I'm thinking about if the program silently fails if it doesn't find a .gpx file for one .jpg, for example, or if it complains about it. Regards, Björn -- BOFH excuse #380: Operators killed when huge stack of backup tapes fell over. -- http://mail.python.org/mailman/listinfo/python-list