Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. # coding: utf-8
  2. # %load nightsresize
  3. import struct
  4. import os
  5. import argparse
  6. import csv
  7.  
  8. def main(args):
  9. struct_fmt = '@hhhHh'
  10. struct_len = struct.calcsize(struct_fmt)
  11. struct_unpack = struct.Struct(struct_fmt).unpack_from
  12.  
  13. in_filename = args.infile
  14.  
  15. if not os.path.isfile(in_filename):
  16. raise ValueError('Path %s not found or is not a file' % in_filename)
  17.  
  18. out_filename = args.outfile or '{}{}.{}'.format(os.path.splitext(in_filename)[0], '-THINGS', 'lmp')
  19.  
  20. print('Reading %s' % in_filename)
  21.  
  22. def read_chunks(f, length):
  23. while True:
  24. data = f.read(length)
  25. if not data: break
  26. yield data
  27.  
  28. header = args.header
  29. results = []
  30. with open(in_filename, 'r') as f:
  31. r = csv.reader(f)
  32. for row in r:
  33. if header:
  34. header = False
  35. continue
  36. results.append((int(row[0]), int(row[1]), 0, args.thingnum, int(row[2])*16))
  37. # csv: x, y, z
  38. # thing entry: x, y, 0 for angle, thing num, z*16 for z
  39.  
  40. out = bytes().join((struct.pack(struct_fmt, *entry) for entry in results))
  41. with open(out_filename, 'wb') as f:
  42. f.write(out)
  43.  
  44. print('Saved %s things to %s' % (len(results), out_filename))
  45.  
  46. def get_args():
  47. parser = argparse.ArgumentParser()
  48. parser.add_argument("infile", type=str,
  49. help="Path to file")
  50. parser.add_argument('-out', '-o', dest='outfile', type=str, help='Path to output file. Default: append -THINGS to input filename', default=None)
  51. parser.add_argument('-header', '-d', action='store_true', help='Specify if input CSV has a header row. Default: assume it does not', default=False)
  52. parser.add_argument('-type', '-t', dest='thingnum', type=int, help='Thing type to write. Default: 300 (Ring)', default=300)
  53. args = parser.parse_args()
  54. return args
  55.  
  56. if __name__ == '__main__':
  57. main(get_args())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement