Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. # coding: utf-8
  2. import sys
  3. import re
  4.  
  5. __author__ = "Seiji Hiraki"
  6. __copyright__ = "Copyright (C) 2019 Seiji Hiraki"
  7. __license__ = "GPLv3"
  8. __version__ = "1.0.0"
  9.  
  10. def check_lineformat_is_time(line):
  11. # matching
  12. if re.match('.*\]: \[[0-9]{7}\.[0-9]{3}\].*', line):
  13. # slice time number
  14. time = re.findall('[0-9]{7}\.[0-9]{3}', line)
  15. return True, float(time[0])
  16.  
  17. return False, 0
  18.  
  19. def check_target_line(line, old_line, old_time):
  20. ret, time = check_lineformat_is_time(line)
  21. if ret:
  22. return ret, time
  23. else:
  24. if old_line != "":
  25. return True, old_time
  26. else:
  27. return ret, time
  28.  
  29. def sort_order_by_time(org_lines):
  30. lines_target = []
  31. lines_sorted = []
  32. old_line = ""
  33. old_time = 0
  34.  
  35. #get target lines
  36. for line in org_lines:
  37. ret, time = check_target_line(line, old_line, old_time)
  38. if ret:
  39. lines_target.append([time, line])
  40. old_line = line
  41. old_time = time
  42.  
  43. # sort!
  44. lines_sorted = sorted(lines_target)
  45.  
  46. return lines_sorted
  47.  
  48. def main():
  49. argv = sys.argv
  50.  
  51. if len(argv) < 2:
  52. print("usage: python this_script.py target_filename")
  53. exit()
  54.  
  55. with open(argv[-1]) as f:
  56. lines = f.readlines()
  57. lines_sorted = sort_order_by_time(lines)
  58. for l in lines_sorted:
  59. print(l[1].rstrip("\n"))
  60.  
  61. if __name__ == "__main__":
  62. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement