Subprocess module
Diez B. Roggisch
deets at nospam.web.de
Wed Apr 23 08:26:23 EDT 2008
Dominique.Holzwarth at ch.delarue.com schrieb:
> Hello all
>
> I want to convert a tex file into a pdf by using pdflatex. For that, I thought the 'subprocess' module might be a good option. My code doesn't work at all tho:
>
> Import os, subprocess
>
> def main():
> scriptpath = os.path.dirname(__file__)
>
> p = subprocess.Popen("pdflatex --include-directory=%s --output-directory=%s/output --aux-directory=%s/temp --interaction=nonstopmode myFile.tex"
> % (scriptpath, scriptpath, scriptpath),
> stdin=subprocess.PIPE,
> stdout=subprocess.PIPE,
> stderr=subprocess.PIPE,
> shell=True,
> cwd=scriptpath)
> (child_stdin,
> child_stdout,
> child_stderr) = (p.stdin, p.stdout, p.stderr)
> print 'stdin'
> print child_stdin
> print 'stdout'
> print child_stdout
> print 'stderr'
> print child_stderr
>
> When I run that code I get the following printouts:
>
> stdin
> <open file '<fdopen>', mode 'wb' at 0x009E7968>
> stdout
> <open file '<fdopen>', mode 'rb' at 0x009E7A40>
> stderr
> <open file '<fdopen>', mode 'rb' at 0x009E79F8>
> Done
Just a guess - but how about consuming the very verbose latex ouptut?
Otherwise latex will stop when the stdout-pipe is full.
And beware of the interactive prompte of latex - that thing has bitten
me more than once.
Diez
More information about the Python-list
mailing list