Rick Dooling wrote: > I spent half a day trying to convert this bash script (on Mac) > > textutil -convert html $1 -stdout | pandoc -f html -t markdown -o $2 > > into Python using subprocess pipes. > > It works if I save the above into a shell script called convert.sh and > then do > > subprocess.check_call(["convert.sh", file, markdown_file]) > > where file and markdown_file are variables. > > But otherwise my piping attempts fail.
It is always a good idea to post your "best effort" failed attempt, if only to give us an idea of your level of expertise. > Could someone show me how to pipe in subprocess. Yes, I've read the doc, > especially > > http://docs.python.org/2/library/subprocess.html#replacing-shell-pipeline > > But I'm a feeble hobbyist, not a computer scientist. Try to convert the example from the above page """ output=`dmesg | grep hda` # becomes p1 = Popen(["dmesg"], stdout=PIPE) p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE) p1.stdout.close() # Allow p1 to receive a SIGPIPE if p2 exits. output = p2.communicate()[0] """ to your usecase. Namely, replace ["dmesg"] --> ["textutil", "-convert", "html", infile, "-stdout"] ["grep", "hda"] --> ["pandoc", "-f", "html", "-t", "marktown", "-o", outfile] Don't forget to set infile = ... outfile = ... to filenames (with absolute paths, to avoid one source of error). If that doesn't work post the code you wrote along with the error messages. -- https://mail.python.org/mailman/listinfo/python-list