-
Notifications
You must be signed in to change notification settings - Fork 1
/
JCmethodParse.py
60 lines (48 loc) · 1.86 KB
/
JCmethodParse.py
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
# 此脚本用于将接口文档转化为传输的JSON命令发送至客户端
def ReadJava(filePath):
f = open(filePath)
line = f.readline()
while line:
if line:
line = line.strip()
line = line.strip('\n')
if line.startswith('public abstract') and line.endswith(';'):
line = line.strip(');')
data = line.split(' ')
parmas = filter(filterblack, data)
# 获取返回值
returnlist = list(parmas)
# 获取方法名
methodList = returnlist[1].split('(')
# 获取参数列表
paramlist = returnlist.copy()
paramlist.pop(0)
if "(" in paramlist[0]:
pars = paramlist[0].split('(')
paramlist[0] = pars[1]
finallist = list()
finallist.append("command")
finallist.append("mediaChannel")
finallist.append(methodList[0])
paramlist = filter(filterparms, paramlist)
paramlistkey = list(paramlist).copy()
key = [paramlistkey[i] for i in range(len(paramlistkey)) if i % 2 == 0]
value = [paramlistkey[i] for i in range(len(paramlistkey)) if i % 2 == 1]
dictionary = dict(zip(key, value))
if dictionary:
finallist.append([dictionary])
else:
finallist.append([])
finallist.append(returnlist[0])
print(finallist)
line = f.readline()
f.close()
def filterblack(args):
if args is not '' and args != 'public' and args != 'abstract':
return args
def filterparms(args):
if args == '':
return []
elif "@" not in args:
return args
ReadJava("JcCall.java")