本次源代码分析的工作集中在convert脚本源码分析上。在DrFact模型中,共有两个convert脚本,一个是convert_add_links.py,另一个则是convert_dpr_index.py。以下是对于这两个convert脚本的源码分析。
一、conert_add_links.py脚本源码分析convert_add_links.py的功能是将命令行上输入的两个目标路径进行处理。具体结果是将第一个目标路径上的文件内容进行拆分组合,生成一个字典,然后将其python字典数据结构内容转化为一个JSON文件。具体代码解析如下:
这个脚本非常简单,只是一个文件处理与转换,因此只使用几个很基础的python库。
import sys import json
然后构建三个空列表,用于后续生成字典使用。
rows = [] cols = [] vals = []
使用系统库sys,用于获得命令行的第一个参数,然后根据这个路径参数打开目标文件,将其中内容读取并按行拆分,再将每行内容拆分成为两个部分——f1和f2,分别填充进rows列表和cols列表之中,vals列表随后填充数值1。
with open(sys.argv[1]) as f:
for line in f.read().splitlines():
if not line:
continue
f1, f2 = line.split()
rows.append(f1)
cols.append(f2)
vals.append(1)
最后,根据上述填充完的列表构建字典数据机构,再将该python字典数据结构编码转化成为一个JSON文件,有待于后续使用。
with open(sys.argv[2], "w") as f: json.dump(dict(rows=rows, cols=cols, vals=vals), f)



