-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsubprocess_git.py
More file actions
81 lines (63 loc) · 1.79 KB
/
subprocess_git.py
File metadata and controls
81 lines (63 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# coding: utf-8
"""
subprocess 模块学习,主要用于调用git 命令行对git 仓进行操作,包括pull、push等操作,提供给一个接口使得两个代码中的
所有分支同步
"""
import subprocess
import os
import time
# bash = "ls"
# para = "-al"
# retcode = subprocess.call([bash, para])
# print "---------------------"
# print retcode
# print type(retcode)
# print "---------------------"
bash = "git"
active = "push"
option = "test"
branch = "master"
# 切换路径
dir = "/home/wmm/studydata/python_base_subprocess_test_repository"
os.chdir(dir)
os.getcwdu()
# 端口自测试
# subprocess._demo_posix()
active = "clone "
para = "--bare"
url = "[email protected]:PythonObject/python_base_subprocess_test_repository.git"
# command = format("" + bash + ' ' + active +' ' + '' + url)
command = "git log"
pro = subprocess.Popen(
args=command,
shell=True,
stdin=None,
stderr=subprocess.PIPE,
stdout=subprocess.PIPE
)
print pro.pid
# pro.returncode
# 该属性表示子进程的返回状态,returncode可能有多重情况:
# None —— 子进程尚未结束;
# ==0 —— 子进程正常退出;
# > 0—— 子进程异常退出,returncode对应于出错码;
# < 0—— 子进程被信号杀掉了。
# poll 用来检查新创建的进程是否结束
while pro.poll() is None:
print pro.stdout.readline()
print "return code:"
print pro.returncode
print "error:"
print pro.stderr.readline()
print "output:"
print pro.stdout.readline()
print pro.returncode
# pro.terminate()
# 直接push到另一个remote
# bash = "git"
# active = "push"
# option = "test"
# branch = "master"
# # url = "[email protected]:PythonObject/python_base_subprocess_test_repository.git"
# retcode = subprocess.call([bash, active, option, branch])
# print retcode