mirror of
https://github.com/opencv/opencv.git
synced 2024-12-16 02:19:12 +08:00
c0a84dcc85
ts: basic documentation for utility scripts
51 lines
1.6 KiB
Python
Executable File
51 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
""" Combines multiple uniform HTML documents with tables into a single one.
|
|
|
|
HTML header from the first document will be used in the output document. Largest
|
|
`<tbody>...</tbody>` part from each document will be joined together.
|
|
"""
|
|
|
|
from optparse import OptionParser
|
|
import glob, sys, os, re
|
|
|
|
if __name__ == "__main__":
|
|
parser = OptionParser()
|
|
parser.add_option("-o", "--output", dest="output", help="output file name", metavar="FILENAME", default=None)
|
|
(options, args) = parser.parse_args()
|
|
|
|
if not options.output:
|
|
sys.stderr.write("Error: output file name is not provided")
|
|
exit(-1)
|
|
|
|
files = []
|
|
for arg in args:
|
|
if ("*" in arg) or ("?" in arg):
|
|
files.extend([os.path.abspath(f) for f in glob.glob(arg)])
|
|
else:
|
|
files.append(os.path.abspath(arg))
|
|
|
|
html = None
|
|
for f in sorted(files):
|
|
try:
|
|
fobj = open(f)
|
|
if not fobj:
|
|
continue
|
|
text = fobj.read()
|
|
if not html:
|
|
html = text
|
|
continue
|
|
idx1 = text.find("<tbody>") + len("<tbody>")
|
|
idx2 = html.rfind("</tbody>")
|
|
html = html[:idx2] + re.sub(r"[ \t\n\r]+", " ", text[idx1:])
|
|
except:
|
|
pass
|
|
|
|
if html:
|
|
idx1 = text.find("<title>") + len("<title>")
|
|
idx2 = html.find("</title>")
|
|
html = html[:idx1] + "OpenCV performance testing report" + html[idx2:]
|
|
open(options.output, "w").write(html)
|
|
else:
|
|
sys.stderr.write("Error: no input data")
|
|
exit(-1)
|