-
Notifications
You must be signed in to change notification settings - Fork 0
/
function.py
76 lines (61 loc) · 2.18 KB
/
function.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from pathlib import Path
from os import path as pathos
from os import mkdir
class DataFile:
def __init__(self, name, headers, items):
self.headers = headers
self.items = items
self.name = name
def ExtractData(filepath):
print("Extract data from ", filepath)
with open(filepath, 'r', encoding='utf-8') as f:
Lines = f.readlines()
items = []
for line in Lines:
if line[0] == '#':
headers = line[2:-2].split("^")
else:
items.append(line[:-2].split("^"))
Data = DataFile(filepath[5:-4], headers, items)
return Data
def GenerateMdFiles(directory, outdirectory, wikilink):
pathlist = Path(directory).rglob('*.txt')
for path in pathlist:
# because path is object not string
path_in_str = str(path)
data = ExtractData(path_in_str)
md_data = ""
# Title
# md_data += "# " + data.name + "\n"
# table headers
for header in data.headers:
md_data += "| " + header
md_data += "|\n"
# separator
for header in data.headers:
md_data += "| - "
md_data += "|\n"
for item in data.items:
for value in item:
md_data += "| " + value
md_data += "|\n"
if pathos.isdir(outdirectory) is not True:
mkdir(outdirectory)
with open(outdirectory+"/" + data.name + "_"+outdirectory + '.md', 'a', encoding='utf-8') as f:
f.write(md_data)
GenerateIndexFile(outdirectory, wikilink)
def GenerateIndexFile(dataDirectory, wikilink):
if pathos.isdir(dataDirectory) is not True:
print("data directory doesn't exist")
exit(1)
pathlist = Path(dataDirectory).rglob('*.md')
print("Creating index file")
indexFile = ""
for path in pathlist:
path_in_str = str(path)
with open(path_in_str, 'r', encoding='utf-8') as f:
filename = path_in_str[len(dataDirectory)+1:-3]
indexFile += "* ["+filename + \
"]"+"("+wikilink+filename+")" + "\n"
with open(dataDirectory+".md", 'w+', encoding='utf-8') as f:
f.write(indexFile)