1

我在这里需要一点帮助。我正在尝试通过 ssh 从我的公司服务器获取 git 存储库。

要运行的命令是git clone ssh://username@someserver.com/somefile.git/

我是 python 编程的新手,正在寻求帮助。

def getRepository():
    command =  'ssh://username@someserver.com/somefile.git'
    clone_process = subprocess.Popen(['git','clone',command],stdin = subprocess.PIPE, stdout = subprocess.PIPE,stderr=subprocess.PIPE)
    output,error = clone_process.communicate(input='password') 


if  __name__ == '__main__':
    getRepository()

在此过程中,它会提示输入我认为communicate(input='password') 会注意的用户密码,但事实并非如此。

实际上,提示输入密码需要一些时间,我必须在输入密码之前阅读该行。我如何实现这一目标?

我尝试将标准输出写入文件并读取文件,直到我得到该行,但这也不起作用..

另外,当我手动输入密码时,我看不到终端上的下载进度。有没有办法得到它?

4

2 回答 2

1

使用pexpect 模块提供交互式输入

请参阅我之前的一个示例以获得答案:从 python 运行期望脚本的最简单方法

于 2012-06-26T07:17:49.280 回答
0

您还可以使用带有非常好的API的Paramiko 模块

于 2012-06-26T07:34:33.570 回答