[Python-3000] os.popen versus subprocess.Popen

Facundo Batista facundobatista at gmail.com
Tue Apr 22 21:52:42 CEST 2008


2008/4/22, Andrew McNabb <amcnabb at mcnabbs.org>:

> Here's a really simple example:
>
>  ("bash", "-c", 'FILE="/tmp/a b c"; cat "$FILE"')
>
>  That's pretty simple as a list of arguments.  But if you do it as a
>  single string, you get:
>
>  'bash -c \'FILE="/tmp/a b c"; cat "$FILE"\''
>
>  It can get much worse than this, especially if you need to use
>  backslashes.

I think that force me to write a tuple or a list just in case I'd need
to write a string that uses simple and double quotes, or backslashes,
because it's "ugly", don't worth it.

What about growing the possibility of write a tuple/list *or* a
string, and if I have a string, just use it? You could say that
writing a plain string I incur in the risk of not enclosing the
parameters correctly at bash level, but note that you're still doing
that quote enclosing even in the tuple/list, and that Python normally
treats the programmer as an adult.

Regards,

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/


More information about the Python-3000 mailing list