Run a external program.

MRAB python at
Sat Nov 14 21:56:30 CET 2009

Yasser Almeida Hernández wrote:
> So, how can i pass an argument as a variable in this context...?
You can't pass arbitrary values on a command line. In this case, why not
just pass the path of the file?

s = 'command "%s" -i file2 -w 1.4 -o file3.out' % file1

> Quoting MRAB <python at>:
>> Yasser Almeida Hernández wrote:
>>> Hi all!!
>>> I'm writing a script where i call a external program which receive  
>>> some arguments.
>>> One of this arguments is stored in a variable, that is passed as  
>>> argument as well:
>>> import os
>>> ...
>>> f = open(file1, 'r')
>>> s = 'command $f -i file2 -w 1.4 -o file3.out'
>>> os.system(s)
>>> ...
>>> When i run the script i get the next message...
>>> '-i: No such file or directory'
>>> ... with a obvious error in the exit of the program. If i remove  the 
>>> option -i i get the same error with every option, even with  those 
>>> who don't get any file as argument. (file2 exist).
>>> BUT, when i run the external program in a python shell, it works...
>>> What's wrong?
>> The name 'f' in the Python script exists only in Python and is unrelated
>> to the '$f' that the shell sees.

More information about the Python-list mailing list