On Mar 25, 11:04 pm, "Gabriel Genellina" <[EMAIL PROTECTED]> wrote: > En Wed, 26 Mar 2008 02:15:28 -0300, skunkwerk <[EMAIL PROTECTED]> > escribió: > > > > > On Mar 25, 9:25 pm, "Gabriel Genellina" <[EMAIL PROTECTED]> > > wrote: > >> En Wed, 26 Mar 2008 00:39:05 -0300, skunkwerk <[EMAIL PROTECTED]> > >> 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.) > > > Thanks Gabriel, > > I tried the new command and one with the raw string and single > > quotes, but it is still giving me the same results (no output). any > > other suggestions? > > My next try would be without the single quotes... > > -- > Gabriel Genellina
thanks for the input guys, I've tried the suggestions but can't get it to work. I have a file named test.htm in my directory, and when I run the following command: rename -vn 's/(.*)\.htm$/model.html/' *.htm from the shell in that directory I get the following output: test.htm renamed as model.html now my python script is called test.py, is located in the same directory, and is called from the shell with 'python test.py' the contents of test.py: import subprocess p = subprocess.Popen(['rename','-vn','s/(.*)\.htm$/ model.html/','*.htm'],stdout=subprocess.PIPE,stderr=subprocess.PIPE) print p.communicate()[0] i change to print p.communicate()[1] in case the output is blank the first time this is the output: *.htm renamed as model.html when I add shell=True to the subprocess command, I get the following output: Usage: rename [-v] [-n] [-f] perlexpr [filenames] am i doing something wrong? -- http://mail.python.org/mailman/listinfo/python-list