tools/scripts/md_csv/md2csv.py
2018-11-03 18:41:54 +08:00

40 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
import os
import re
import json
import pprint
TOKEN_REGEX = r"""(\d+)(-)(\d+)(\.)(.+)"""
TOKEN_REGEX2 = r"""(?:\|\s*)([^\s]*)(?:\s*)(?:\|\s*)([^\s]*)(?:\s*)(?:\|\s*)([^\s]*)(?:\s*)(?:\|\s*)([^\s]*)(?:\s*)"""
def md2csv(mdfile):
state = 0
log_dict = {}
curr_node = None
for line in open(mdfile).readlines():
match = re.match(TOKEN_REGEX, line)
if match:
logclass1, _, logclass2, _, title = match.groups()
state = 1
assert((logclass1 + '-' + logclass2) not in log_dict)
curr_node = {}
log_dict[logclass1 + '-' + logclass2] = curr_node
# print('')
# print(logclass1, logclass2, title)
continue
match2 = re.match(TOKEN_REGEX2, line)
if match2 and state == 1:
field1, field2, field3, field4 = match2.groups()
if field1[0] != '-' and field1 != '字段':
curr_node[field1.replace('\\', '')] = {
'short_name': field1.replace('\\', ''),
'en_name': field2.replace('\\', ''),
'desc': field4
}
# print(field1 + ',' + field2 + ',' + field3 + ',' + field4)
#end for
# pprint.pprint(log_dict)
print(json.dumps(log_dict, sort_keys=True, indent=4, separators=(',', ': ')))
md2csv('/root/opensource/doc/api说明/gamelog.md')