fork download
  1. import sys
  2. import os
  3. import re
  4. def usage(emsg):
  5. print(emsg)
  6. print(os.path.basename(__file__),"input_dir_name","output_dir_name","sensor_name(a,b,c,d)")
  7. sys.exit(1)
  8. def check_args():
  9. global in_dir
  10. global out_dir
  11. global s_no
  12. global sensor
  13. argv = sys.argv
  14. if len(argv) <= 3:
  15. usage("too few arguments!")
  16. in_dir = argv[1]
  17. out_dir = argv[2]
  18. sensor = argv[3]
  19. if os.path.isdir(in_dir) == False:
  20. usage("input_dir_name error!")
  21. if os.path.isdir(out_dir) == False:
  22. usage("output_dir_name error!")
  23. s_no = -1
  24. s_tbl = ["a","b","c","d"]
  25. if sensor in s_tbl:
  26. s_no = s_tbl.index(sensor) + 1
  27. if s_no == -1:
  28. usage("sensor_no error!")
  29.  
  30. def conv_data():
  31. ecount = 0
  32. files = os.listdir(in_dir)
  33. for fname in files:
  34. if re.search("^\d{8}\.txt$",fname):
  35. conv_1file(fname)
  36. ecount += 1
  37. print(ecount,"files converted.")
  38.  
  39. def conv_1file(fname):
  40. ofname = "s" + sensor + "_" + fname
  41. fpath = os.path.join(in_dir,fname)
  42. ofpath = os.path.join(out_dir,ofname)
  43. with open(fpath,"r") as fi:
  44. with open(ofpath,"w") as fo:
  45. for line in fi:
  46. m = re.search("^\d{12}00(\+\d+)(\+\d+)(\+\d+)(\+\d+)$",line)
  47. if m:
  48. yy = line[2:4]
  49. mm = line[4:6]
  50. dd = line[6:8]
  51. hh = line[8:10]
  52. nn = line[10:12]
  53. sv0 = m.group(s_no)
  54. sv1 = "{} {}".format(sv0[0:1],sv0[2:])
  55. cvdata = "{}/{}/{},{}:{},{}\n".format(yy,mm,dd,hh,nn,sv1)
  56. fo.write(cvdata)
  57. # global data
  58. in_dir = ""
  59. out_dir = ""
  60. sensor = ""
  61. s_no = ""
  62.  
  63. check_args()
  64. conv_data()
  65.  
Runtime error #stdin #stdout 0.04s 9412KB
stdin
Standard input is empty
stdout
too few arguments!
prog.py input_dir_name output_dir_name sensor_name(a,b,c,d)