Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

33 linhas
1008 B

  1. import json
  2. import csv
  3. import sys
  4. if len(sys.argv) == 1:
  5. print("No file was provided")
  6. else:
  7. trace_events = []
  8. call_stack = []
  9. with open(sys.argv[1], "r") as in_file:
  10. csv_reader = csv.reader(in_file, delimiter=',')
  11. for line in csv_reader:
  12. if line[0] == "->":
  13. call_stack.append(line)
  14. elif line[0] == "<-":
  15. call = call_stack.pop()
  16. trace_events.append({
  17. "pid": 1,
  18. "tid": 1,
  19. "ts" : int(call[1]),
  20. "dur": int(line[1])-int(call[1]),
  21. "ph" : "X",
  22. "name": call[2],
  23. "args": {
  24. "file": f"({call[3]}:{call[4]})"
  25. }
  26. })
  27. else:
  28. print("invalid syntax")
  29. break
  30. with open("out.json", "w") as out_file:
  31. out_file.write(json.dumps({"traceEvents": trace_events}, indent=4))