我在python中有以下代码:
import subprocess
var = subprocess.Popen(["pdflatex","file.tex"])
其中var是一个丢弃变量,因为我不关心返回变量。它做我想要的(从乳胶文件file.tex生成pdf文件),但然后等待用户输入。这些是程序的最后一行,我只想让它在不等待输入的情况下结束。我怎么能这样做?
答案 0 :(得分:4)
将stdin重定向到devnull,以避免子进程暂停等待用户输入:
import os
from subprocess import Popen
try:
from subprocess import DEVNULL # Python 3
except ImportError:
DEVNULL = open(os.devnull, 'r+b', 0)
Popen(['pdflatex', 'file.tex'], stdin=DEVNULL, stdout=DEVNULL, stderr=DEVNULL)
我认为你也不关心stdout / stderr。
答案 1 :(得分:0)
如果你不关心输出,试试这个:
args = ["pdflatex","file.tex"]
var = subprocess.Popen(args, stdout=subprocess.PIPE)
trash = var.communicate() # dump the output of the program calls