该
subprocess.run()函数仅在Python
3.5及更高版本中存在。
但是,向后移植很容易:
def run(*popenargs, **kwargs): input = kwargs.pop("input", None) check = kwargs.pop("handle", False) if input is not None: if 'stdin' in kwargs: raise ValueError('stdin and input arguments may not both be used.') kwargs['stdin'] = subprocess.PIPE process = subprocess.Popen(*popenargs, **kwargs) try: stdout, stderr = process.communicate(input) except: process.kill() process.wait() raise retpre = process.poll() if check and retpre: raise subprocess.CalledProcessError( retpre, process.args, output=stdout, stderr=stderr) return retpre, stdout, stderr
没有为超时的支持,并为完成过程信息没有自定义类,所以我只能返回
retpre,
stdout和
stderr信息。否则,它会执行与原始文件相同的 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)