-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtool.py
38 lines (31 loc) · 863 Bytes
/
tool.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
r"""Command-line tool to validate and pretty-print HTML
Based on json.tool
Usage::
$ echo '<html><body>Hello World</body></html>' | python -m html.tool
<html>
<body>
Hello World
</body>
</html>
"""
import sys
from BeautifulSoup import BeautifulSoup
def main():
if len(sys.argv) == 1:
infile = sys.stdin
outfile = sys.stdout
elif len(sys.argv) == 2:
infile = open(sys.argv[1], 'rb')
outfile = sys.stdout
elif len(sys.argv) == 3:
infile = open(sys.argv[1], 'rb')
outfile = open(sys.argv[2], 'wb')
else:
raise SystemExit("{0} [infile [outfile]]".format(sys.argv[0]))
try:
outfile.write(BeautifulSoup(infile.read()).prettify())
except ValueError, e:
raise SystemExit(e)
outfile.write('\n')
if __name__ == '__main__':
main()