On 27/05/14 21:01, Adam Gold wrote:
"dd if=/home/adam/1 bs=4k conv=noerror,notrunc,sync | pbzip2 > 1.img.bz2"
The first thing I do is break it into two assignments
And that's the start of the problem because it should be three:
The first command, the second command and the output file.
ddIf = shlex.split("dd if=/home/adam/1 bs=4k conv=noerror,notrunc,sync")
compress = shlex.split("pbzip2 > /home/adam/1.img.bz2")
compress = "pbzip2"
outfile = open('/home/adam/1.img.bz2','w')
The redirection symbol is not something subprocess can
use as an argument.
p1 = subprocess.Popen(ddIf, stdout=subprocess.PIPE)
p2 = subprocess.Popen(compress, stdin=p1.stdout, stdout=subprocess.PIPE)
Use the output file here.
p2 = subprocess.Popen(compress, stdin=p1.stdout, stdout=outfile)
I think that the '>' redirect needs to be dealt with using the
subprocess module as well but I can't quite put the pieces together.
I'd appreciate any guidance. Thanks.
Alternatively read the output into a variable using communicate but then
write it out to the file manually at the end.
[You might also be able to use shell=TRUE but that introduces other
issues. But I don't know whether using shell includes redirection.]
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor