On Mar 26, 6:44 am, skunkwerk <[EMAIL PROTECTED]> wrote: > 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?
in addition, when I use Popen without any quotes, or without quotes for the regular expression, I get an exception. I'm running ubuntu linux 7.10 with python 2.5.1 thanks -- http://mail.python.org/mailman/listinfo/python-list