繁体   English   中英

Python subprocess.Popen 不接受文本参数

[英]Python subprocess.Popen doesn't take text argument

根据subprocess.Popen的 Python 3 文档,类构造函数采用可选参数text (它应该控制文件对象 stdin、stdout 和 stderr 是否以文本模式打开)。

但是,当我尝试在构建Popen对象时设置text=true时,出现错误

Failed: TypeError: __init__() got an unexpected keyword argument 'text'

当我查看源代码时(我使用的是 Python 3.6.4),构造函数没有参数text 这里发生了什么? 为什么文档说构造函数在我拥有的subprocess.py版本中没有时采用可选参数text

我感觉 text 参数已在 3.7 中添加,而不是 3.6。

文档的相关部分:

在 3.7 版更改: 添加了 text 参数,作为universal_newlines 的更易于理解的别名。 添加了 capture_output 参数。

正如@Cecile 所说,一些参数如textcapture_output已在 3.7 中添加。

因此,为了在其中运行一些命令,您可以尝试以下代码:

import subprocess
subprocess.run('git --version', shell=True, check=True, universal_newlines=False)

如果要在 3.6 版中捕获输出 (capture_output),请尝试以下操作:

from subprocess import PIPE
import subprocess

subprocess.run('git --version', shell=True, check=True, universal_newlines=False, stdout=PIPE, stderr=PIPE)

PS有关更多信息,您可以查看此链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM