2016-03-17 64 views
-1

我正在使用Python调用另一个应用程序。我已经用subprocess.call()和subprocess.popen()方法用stdin和stdout参数尝试运行另一个应用程序。我能够打开新的新程序,但应用程序需要密码登录。请帮助我,如何将密码传递给窗口应用程序。如何使用python将密码传递给另一个程序

+0

什么应用?它如何要求密码?如果不知道应用程序的任何信息,我们无法帮助您。 – khajvah

+0

http://www.pythonforbeginners.com/systems-programming/how-to-use-the-pexpect-module-in-python 检查是否有帮助 –

回答

0

它应该是这样的:

import subprocess 

args = [app_path, add_arguments] 
process = subprocess.Popen(args, subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE) 
process.stdin.write(bytes(yourpwd + "\n")) 
output = process.communicate() 

虽然打开与POPEN您的应用程序,与由子管理的管这个应用程序的标准输入流连接。之后,您可以直接写入此流,就像在控制台窗口中输入内容一样。但是,您必须将所有内容都发送至process.communicate(),因为它会完成输入并等待程序结果。请注意,您的申请在致电communicate后关闭。

我还没有找到避免process.communicate的解决方法。所以如果你喜欢有某种交互性,你必须尝试别的。

相关问题