skunkwerk wrote: > 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
Without shell=True, your glob characters will not be expanded. Hence, the command looks for a file actually named "*.htm" > when I add shell=True to the subprocess command, I get the following > output: > Usage: rename [-v] [-n] [-f] perlexpr [filenames] Here the use of the shell may be confounding the arguments passed. Your command will probably work better if you avoid using shell=True. However, you will need to perform your own globbing: # Untested (no perl-rename here): command = ['rename','-vn', 's/(.*)\.htm$/model.html/'] files = glob.glob('*.htm') command.extend(files) p = subprocess.Popen( command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, ) Jeffrey -- http://mail.python.org/mailman/listinfo/python-list