Execute commands from file

i3dmaster i3dmaster at gmail.com
Thu May 17 03:30:23 EDT 2007


On May 16, 1:05 pm, Steve Holden <s... at holdenweb.com> wrote:
> Martin Blume wrote:
> > "tmp123" schrieb >
> >> We have very big files with python commands
> >> (more or less, 500000 commands each file).
>
> >> It is possible to execute them command by command,
>
> > inp = open(cmd_file)
> > for line in inp:
> >     exec line
>
> > might help. You don't get quite the same feeling as
> > "like if the commands was typed one after the other
> > in a interactive session", but perhaps this helps.
>
> > Warning: the code above is without any error checks.
> > You might also run into security problems, the example
> > above assumes you trust your input.
>
> > HTH. YMMV.
> > Martin
>
> The problem with this approach is that each line executes without any
> connection to the environment created by previous lies.
>
> Try it on a file that reads something like
>
> xxx = 42
> print xxx
>
> and you will see NameError raised because the assignment hasn't affected
> the environment for the print statement.
>
> regards
>   Steve
> --
> Steve Holden        +1 571 484 6266   +1 800 494 3119
> Holden Web LLC/Ltd          http://www.holdenweb.com
> Skype: holdenweb      http://del.icio.us/steve.holden
> ------------------ Asciimercial ---------------------
> Get on the web: Blog, lens and tag your way to fame!!
> holdenweb.blogspot.com        squidoo.com/pythonology
> tagged items:         del.icio.us/steve.holden/python
> All these services currently offer free registration!
> -------------- Thank You for Reading ----------------

cat file:

x = 100
print x

cat file.py:
#!/usr/bin/python2.4

import os.path
import sys

file, ext = os.path.splitext(sys.argv[0])
f = open(file,'rb')
for i in f:
        exec i

>./file.py
100

Don't see the problem though.




More information about the Python-list mailing list