【发布时间】:2016-02-19 06:18:38
【问题描述】:
我正在执行从 python 连接到外部服务器的程序。
如果用户未通过身份验证,程序会询问用户名和密码。
下面是子程序输出的样子:
Authentication Required
Enter authorization information for "Web API"
<username_prompt_here>
<password_prompt_here>
我想在打印“需要身份验证”后立即终止子进程,但问题是我的代码运行错误 - 子进程要求提供凭据,在用户提供凭据后,子进程被终止。
这是我的代码:
with subprocess.Popen(self.command, stdout=subprocess.PIPE, shell=True, bufsize=1, universal_newlines=True) as process:
for line in process.stdout:
if 'Authentication Required' in line:
print('No authentication')
process.kill()
print(line)
我做错了什么?
【问题讨论】:
-
你能发布完整的代码吗?还是完整的?我没有看到您在哪里提示用户输入用户名和密码。
-
我没有提示 - 子程序会这样做(查看附加输出)。
-
并且您想在 Authentication Required 行之后立即终止该进程?
-
是否真的要等用户输入用户名和密码才退出子程序?
-
是的,我不想让子程序询问密码,目前情况是询问密码,然后被杀死。
标签: subprocess python-3.4