subprocess.popen function with quotes

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Wed Mar 26 00:25:17 EDT 2008


En Wed, 26 Mar 2008 00:39:05 -0300, skunkwerk <skunkwerk at gmail.com>  
escribió:

>>    i'm trying to call subprocess.popen on the 'rename' function in
>> linux.  When I run the command from the shell, like so:
>>
>> rename -vn 's/\.htm$/\.html/' *.htm
>>
>> it works fine... however when I try to do it in python like so:
>> p = subprocess.Popen(["rename","-vn","'s/\.htm$/
>> \.html/'","*.htm"],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
>>
>> print p.communicate()[0]
>>
>> nothing gets printed out (even for p.communicate()[1])

I'd try with:

p = subprocess.Popen(["rename", "-vn", r"'s/\.htm$/\.html/'", "*.htm"],
       stdout=subprocess.PIPE, stderr=subprocess.PIPE,
       shell=True)

(note that I added shell=True and I'm using a raw string to specify the  
reg.expr.)

-- 
Gabriel Genellina




More information about the Python-list mailing list