Am 18.09.2012 15:03 schrieb David Smith:

I COULD break down each batch file and write dozens of mini python
scripts to be called. I already have a few, too. Efficiency? Speed is
bad, but these are bat files, after all. The cost of trying to work with
a multitude of small files is high, though, and I realized I had better
go to a mix.

In order to achieve this, it might be very useful to either have a module for each (bigger) part to be achieved which you can call with

    python -m modulename arg1 arg2 arg3

and putting the Python code into modulename.py.

Or you have one big "interpreter" which works this way:

class Cmd(object):
    """
    Command collector
    """
    def __init__(self):
        self.cmds = {}
    def cmd(self, f):
        # register a function
        self.cmds[f.__name__] = f
        return f
    def main(self):
        import sys
        sys.exit(self.cmds[sys.argv[1]](*sys.argv[2:]))

cmd = Cmd()

@cmd.cmd
def cmd1(arg1, arg2):
    do_stuff()
    ...
    return 1 # error -> exit()

@cmd.cmd
def cmd2():
    ...

if __name__ == '__main__':
    cmd.main()


This is suitable for many small things and can be used this way:

bat cmds
python -m thismodule cmd1 a b
other bat cmds
python -m thismodule cmd2
...

HTH,

Thomas
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to