[英]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 所说,一些参数如text
和capture_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.