繁体   English   中英

从Python程序响应git命令行提示符

[英]Respond to git command line prompt from Python program

我目前正在使用Python程序对文件进行一些编辑后,自动提交到存储库。 我正在使用subprocess.Popen使子进程调用git二进制文件。 虽然我可以在创建子进程时使用stdin=PIPE ,并且在命令行提示时能够写我的用户凭据,但是由于某种原因,这种情况并未发生。 该代码如下所示:

proc = Popen(["git","push","origin","master"], stdin=PIPE)
proc.communicate("username")
proc.communicate("password")

现在发生的是它正在调用二进制文件,但仍向我显示命令行提示符。 我在这里查看了其他一些问题,但是它们基本上都使用了与我相同的代码,因此我对该问题有些困惑。 我知道还有很多其他方法可以达到此效果,例如缓存凭据,但是我很想知道这种方法是否可以工作,原因有很多。

proc = Popen(["git","push","origin","master"], stdin=PIPE,stdout=PIPE,stderr=PIPE)
time.sleep(1)
proc.stdin.write("username")
time.sleep(1)
proc.stdin.write("password")
#or maybe
for letter in "password":
    proc.stdin.write(letter)
    time.sleep(0.1)
print proc.communicate()

我猜是这样的...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM