import sys
import os
import re
def usage(emsg):
print(emsg)
print(os.path.basename(__file__),"input_dir_name","output_dir_name","sensor_name(a,b,c,d)")
def check_args():
global in_dir
global out_dir
global s_no
global sensor
argv = sys.argv
if len(argv) <= 3:
usage("too few arguments!")
in_dir = argv[1]
out_dir = argv[2]
sensor = argv[3]
if os.path.isdir(in_dir) == False:
usage("input_dir_name error!")
if os.path.isdir(out_dir) == False:
usage("output_dir_name error!")
s_no = -1
s_tbl = ["a","b","c","d"]
if sensor in s_tbl:
s_no = s_tbl.index(sensor) + 1
if s_no == -1:
usage("sensor_no error!")
def conv_data():
ecount = 0
files = os.listdir(in_dir)
for fname in files:
if re.search("^\d{8}\.txt$",fname):
conv_1file(fname)
ecount += 1
print(ecount,"files converted.")
def conv_1file(fname):
ofname = "s" + sensor + "_" + fname
fpath = os.path.join(in_dir,fname)
ofpath = os.path.join(out_dir,ofname)
with open(fpath,"r") as fi:
with open(ofpath,"w") as fo:
for line in fi:
m = re.search("^\d{12}00(\+\d+)(\+\d+)(\+\d+)(\+\d+)$",line)
if m:
yy = line[2:4]
mm = line[4:6]
dd = line[6:8]
hh = line[8:10]
nn = line[10:12]
sv0 = m.group(s_no)
sv1 = "{} {}".format(sv0[0:1],sv0[2:])
cvdata = "{}/{}/{},{}:{},{}\n".format(yy,mm,dd,hh,nn,sv1)
fo.write(cvdata)
# global data
in_dir = ""
out_dir = ""
sensor = ""
s_no = ""
check_args()
conv_data()
aW1wb3J0IHN5cwppbXBvcnQgb3MKaW1wb3J0IHJlCmRlZiB1c2FnZShlbXNnKToKICAgIHByaW50KGVtc2cpCiAgICBwcmludChvcy5wYXRoLmJhc2VuYW1lKF9fZmlsZV9fKSwiaW5wdXRfZGlyX25hbWUiLCJvdXRwdXRfZGlyX25hbWUiLCJzZW5zb3JfbmFtZShhLGIsYyxkKSIpCiAgICBzeXMuZXhpdCgxKQpkZWYgY2hlY2tfYXJncygpOgogICAgZ2xvYmFsIGluX2RpcgogICAgZ2xvYmFsIG91dF9kaXIKICAgIGdsb2JhbCBzX25vCiAgICBnbG9iYWwgc2Vuc29yCiAgICBhcmd2ID0gc3lzLmFyZ3YKICAgIGlmIGxlbihhcmd2KSA8PSAzOgogICAgICAgIHVzYWdlKCJ0b28gZmV3IGFyZ3VtZW50cyEiKQogICAgaW5fZGlyID0gYXJndlsxXQogICAgb3V0X2RpciA9IGFyZ3ZbMl0KICAgIHNlbnNvciA9IGFyZ3ZbM10KICAgIGlmIG9zLnBhdGguaXNkaXIoaW5fZGlyKSA9PSBGYWxzZToKICAgICAgICB1c2FnZSgiaW5wdXRfZGlyX25hbWUgZXJyb3IhIikKICAgIGlmIG9zLnBhdGguaXNkaXIob3V0X2RpcikgPT0gRmFsc2U6CiAgICAgICAgdXNhZ2UoIm91dHB1dF9kaXJfbmFtZSBlcnJvciEiKQogICAgc19ubyA9IC0xCiAgICBzX3RibCA9IFsiYSIsImIiLCJjIiwiZCJdCiAgICBpZiBzZW5zb3IgaW4gc190Ymw6CiAgICAgICAgc19ubyA9IHNfdGJsLmluZGV4KHNlbnNvcikgKyAxCiAgICBpZiBzX25vID09IC0xOgogICAgICAgIHVzYWdlKCJzZW5zb3Jfbm8gZXJyb3IhIikKCmRlZiBjb252X2RhdGEoKToKICAgIGVjb3VudCA9IDAKICAgIGZpbGVzID0gb3MubGlzdGRpcihpbl9kaXIpCiAgICBmb3IgZm5hbWUgaW4gZmlsZXM6CiAgICAgICAgaWYgcmUuc2VhcmNoKCJeXGR7OH1cLnR4dCQiLGZuYW1lKToKICAgICAgICAgICAgY29udl8xZmlsZShmbmFtZSkKICAgICAgICAgICAgZWNvdW50ICs9IDEKICAgIHByaW50KGVjb3VudCwiZmlsZXMgY29udmVydGVkLiIpCgpkZWYgY29udl8xZmlsZShmbmFtZSk6CiAgICBvZm5hbWUgPSAicyIgKyBzZW5zb3IgKyAiXyIgKyBmbmFtZQogICAgZnBhdGggPSBvcy5wYXRoLmpvaW4oaW5fZGlyLGZuYW1lKQogICAgb2ZwYXRoID0gb3MucGF0aC5qb2luKG91dF9kaXIsb2ZuYW1lKQogICAgd2l0aCBvcGVuKGZwYXRoLCJyIikgYXMgZmk6CiAgICAgICAgd2l0aCBvcGVuKG9mcGF0aCwidyIpIGFzIGZvOgogICAgICAgICAgICBmb3IgbGluZSBpbiBmaToKICAgICAgICAgICAgICAgIG0gPSByZS5zZWFyY2goIl5cZHsxMn0wMChcK1xkKykoXCtcZCspKFwrXGQrKShcK1xkKykkIixsaW5lKQogICAgICAgICAgICAgICAgaWYgbToKICAgICAgICAgICAgICAgICAgICB5eSA9IGxpbmVbMjo0XQogICAgICAgICAgICAgICAgICAgIG1tID0gbGluZVs0OjZdCiAgICAgICAgICAgICAgICAgICAgZGQgPSBsaW5lWzY6OF0KICAgICAgICAgICAgICAgICAgICBoaCA9IGxpbmVbODoxMF0KICAgICAgICAgICAgICAgICAgICBubiA9IGxpbmVbMTA6MTJdCiAgICAgICAgICAgICAgICAgICAgc3YwID0gbS5ncm91cChzX25vKQogICAgICAgICAgICAgICAgICAgIHN2MSA9ICJ7fSB7fSIuZm9ybWF0KHN2MFswOjFdLHN2MFsyOl0pCiAgICAgICAgICAgICAgICAgICAgY3ZkYXRhID0gInt9L3t9L3t9LHt9Ont9LHt9XG4iLmZvcm1hdCh5eSxtbSxkZCxoaCxubixzdjEpCiAgICAgICAgICAgICAgICAgICAgZm8ud3JpdGUoY3ZkYXRhKQojIGdsb2JhbCBkYXRhCmluX2RpciA9ICIiCm91dF9kaXIgPSAiIgpzZW5zb3IgPSAiIgpzX25vID0gIiIKCmNoZWNrX2FyZ3MoKQpjb252X2RhdGEoKQo=