Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python子进程标准管道_Python_Subprocess - Fatal编程技术网

Python子进程标准管道

Python子进程标准管道,python,subprocess,Python,Subprocess,你好,我有这样的问题。我需要通过子流程登录。因此,我想创建一个输入管道,并向其写入登录名和密码。因此,我尝试执行以下操作: sp = subprocess.Popen([cmd],stdout=subprocess.PIPE, stdin=subprocess.PIPE) i, o = sp.communicate() 在第一个字符串之后,我有这样一个错误tcgetattr:device的ioctl不合适。我没有o的值。在这种情况下,如何将smth写入管道。感谢您的帮助。发件人: 可选输入参数

你好,我有这样的问题。我需要通过子流程登录。因此,我想创建一个输入管道,并向其写入登录名和密码。因此,我尝试执行以下操作:

sp = subprocess.Popen([cmd],stdout=subprocess.PIPE, stdin=subprocess.PIPE)
i, o = sp.communicate()
在第一个字符串之后,我有这样一个错误
tcgetattr:device的ioctl不合适
。我没有
o
的值。在这种情况下,如何将smth写入管道。感谢您的帮助。

发件人:

可选输入参数应该是要发送给子对象的数据 过程 …
请注意,如果要将数据发送到进程的stdin,则需要 使用stdin=PIPE创建Popen对象。同样地,为了得到任何东西 除了结果元组中的None之外,还需要指定stdout=PIPE 和/或stderr=管道也

i、 例如,要将输入传递给子流程,请指定
input
参数;要获取非
None
o
值,必须指定
stderr=PIPE


在许多情况下,密码提示和密码本身不是写入管道或从管道读取,而是直接从终端写入/读取,即,除非命令允许设置通过stdin接受密码的选项,否则您可能需要伪tty来传递密码。您可以使用
pty
与子进程交互。请参见

中的第一个原因,您没有为
stderr
提供任何内容:
stderr=subprocess.PIPE