我是python的初学者,我正在做的简单任务-获取git存储库中的所有分支并在控制台上打印。
我看到下面的代码运行良好,但是始终为同一存储库提供不同数量的分支列表,我看到subprocess.popen()是非阻塞的,所以我尝试使用wait()和communication()来保持执行,但是wait()永远不会结束进程,并且每次我运行代码时,communication()都会给我不同数量的分支。(与在git bash上运行命令不同)
存储库可能需要不同的时间来完成其执行。列出所有分支机构的任何帮助。
proc = subprocess.Popen(['git', 'ls-remote', '--heads' , url],
stdin = subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, shell=True)
while proc.poll() is None:
out = proc.stdout.readline()
print (out)
proc.communicate()
答案 0 :(得分:0)
proc = subprocess.Popen(['git', 'ls-remote', '--heads' , url],
stdin = subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, shell=True)
for out in proc.stdout:
print (out)
proc.wait()
proc.stdout.close()