command line arguments using subprocess

Jim jhefferon at smcvt.edu
Wed Mar 14 20:51:04 CET 2007


Hello,

I'm trying to use subprocess to drive a Perl script.  I'm having some
trouble getting it to spot the command line arguments.  Basically, if
I call subprocess(args).wait() where args has a second item, I can't
convince the Perl script to see it.  Below is a pretty small example.
If someone could get me unstuck, I'd appreciate it.  (Python 2.4.4c1,
if that helps.)

Thanks,
Jim


................. /home/ftpmaint/test.pl................
#!/usr/bin/env perl
print "\$0 is -->$0<--\n";
print "\$ARGV[0] is -->$ARGV[0]<--\n";

die "usage: $0 PKGNAME\n" unless @ARGV == 1;


.............../home/ftpmaint/subtest.py.................
import os,subprocess

args=['/home/ftpmaint/test.pl','a']
p=subprocess.Popen(args,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,cwd=os.getcwd())
retCode=p.wait()
print "retCode=",retCode
print "stdout>>",p.stdout.read()
print "stderr>>",p.stderr.read()


........... some command line work ..............
ftpmaint at millstone:~$ ./test.pl
$0 is --./test.pl--
$ARGV[0] is --><--
usage: ./test.pl PKGNAME

ftpmaint at millstone:~$ ./test.pl a
$0 is --./test.pl--
$ARGV[0] is -->a<--

ftpmaint at millstone:~$ python subtest.py
retCode= 255
stdout= $0 is --/home/ftpmaint/test.pl--
$ARGV[0] is --><--




More information about the Python-list mailing list