-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenTripleDataJson.py
More file actions
56 lines (48 loc) · 1.45 KB
/
Copy pathgenTripleDataJson.py
File metadata and controls
56 lines (48 loc) · 1.45 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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
import json
class Item(object):
def __init__(self, name, key, val):
self.Name = name
self.Key = key
self.Val = val
def ExtractObj(self, line, key):
elems = line.split("\t")
if elems[2] == key:
item = Item(elems[1], elems[2], elems[4].strip().replace("", ","))
return item
return None
def jsonDefault(object):
return object.__dict__
if __name__ == "__main__":
if len(sys.argv) != 5:
print("Usage: {} in_file out_file key step".format(sys.argv[0]))
sys.exit(-1)
in_file = sys.argv[1]
out_file = sys.argv[2]
key = sys.argv[3]
step = int(sys.argv[4])
if not os.path.exists(in_file):
print("in file not exists")
sys.exit(-1)
if not os.path.exists(os.path.dirname(out_file)):
print("out file directory not exist")
sys.exit(-1)
items = []
item = Item("", "", "")
with open(in_file, 'r') as f:
count = 0
for line in f:
count += 1
if count < step:
continue
node = item.ExtractObj(line, key)
if node is None:
continue
items.append(node)
count = 0
with open(out_file, 'w') as f:
json.dump(items, f, ensure_ascii=False, indent=4,
separators=(',', ': '), encoding="utf-8", default=jsonDefault)