50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import argparse
|
||
|
import json
|
||
|
import os
|
||
|
import pprint
|
||
|
#import re
|
||
|
try:
|
||
|
import yaml
|
||
|
except:
|
||
|
exit('You need pyYAML.')
|
||
|
|
||
|
def parseArgs():
|
||
|
args = argparse.ArgumentParser()
|
||
|
args.add_argument('-i',
|
||
|
'--in',
|
||
|
dest = 'infile',
|
||
|
required = True,
|
||
|
help = 'The plaintext representation of a python dict')
|
||
|
args.add_argument('-o',
|
||
|
'--out',
|
||
|
dest = 'outfile',
|
||
|
required = True,
|
||
|
help = 'The JSON file to create')
|
||
|
return(args)
|
||
|
|
||
|
def main():
|
||
|
args = vars(parseArgs().parse_args())
|
||
|
infile = os.path.abspath(os.path.normpath(args['infile']))
|
||
|
outfile = os.path.abspath(os.path.normpath(args['outfile']))
|
||
|
if not os.path.lexists(infile):
|
||
|
exit('Input file doesn\'t exist.')
|
||
|
#try:
|
||
|
with open(outfile, 'w') as outgoing:
|
||
|
with open(infile, 'r') as incoming:
|
||
|
#data = re.sub("'", '"', incoming.read())
|
||
|
#outgoing.write(data)
|
||
|
#d = json.dumps(data, ensure_ascii = False)
|
||
|
#d = json.dumps(incoming.read().replace("'", '"'))
|
||
|
d = yaml.load(incoming.read())
|
||
|
pprint.pprint(d)
|
||
|
j = json.dumps(d, indent = 4)
|
||
|
outgoing.write(j)
|
||
|
#except:
|
||
|
#exit('Error when trying to read/write file(s).')
|
||
|
return()
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|