[英]How to stop subprocess.Popen waiting for user input in python
我在python中有以下代码:
import subprocess
var = subprocess.Popen(["pdflatex","file.tex"])
var是一个丢弃变量,因为我不在乎返回变量。 它完成了我想要的操作(从乳胶文件file.tex生成pdf文件),但是随后等待用户输入。 这些是程序的最后几行,我只希望它结束而不必等待输入。 我怎样才能做到这一点?
将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。
如果您不关心输出,请尝试以下操作:
args = ["pdflatex","file.tex"]
var = subprocess.Popen(args, stdout=subprocess.PIPE)
trash = var.communicate() # dump the output of the program calls
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.