-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmerge.py
More file actions
49 lines (44 loc) · 1.72 KB
/
Copy pathmerge.py
File metadata and controls
49 lines (44 loc) · 1.72 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
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import os
import jinja2
from jinja2 import Template
import glob
from pathlib import Path
import argparse
latex_jinja_env = jinja2.Environment(
block_start_string='\BLOCK{',
block_end_string='}',
variable_start_string='\VAR{',
variable_end_string='}',
comment_start_string='\#{',
comment_end_string='}',
line_statement_prefix='%%',
line_comment_prefix='%#',
trim_blocks=True,
autoescape=False,
loader=jinja2.FileSystemLoader(os.path.abspath('.'))
)
def get_pdfs(dir):
part=os.path.split(dir)[1]
pdfs=sorted(glob.glob(os.path.join(dir,"*.pdf")))
pdfs_list=list(map(lambda path:{"pdf_path":os.path.splitext(path.replace('\\', '/'))[0],
"pdf_name":os.path.splitext(os.path.split(path)[1])[0]},pdfs))
part_dict={"part_name":part,"pdfs":pdfs_list}
return part_dict
if __name__=="__main__":
parser = argparse.ArgumentParser(description="生成TEX代码")
parser.add_argument('--dirname', help="文件夹名称",default="example")
parser.add_argument('--title', help="报告名称",default="Example Reports")
parser.add_argument('--author', help="报告作者",default="Example Author")
args = parser.parse_args()
dirs=glob.glob(args.dirname+"/*")
dirs=sorted(list(filter(lambda path:os.path.isdir(path),dirs)))
dirs=list(map(lambda path:os.path.abspath(path),dirs))
parts=list(map(get_pdfs,dirs))
template=latex_jinja_env.get_template('template.tex')
output=template.render(title=args.title,author=args.author,parts=parts)
if not os.path.isdir("./build"):
os.makedirs("./build")
with open(os.path.join("./build/",args.dirname+".tex"),"w",encoding="utf-8") as fout:
fout.write(output)