Advertisement
Guest User

Untitled

a guest
Nov 13th, 2016
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.72 KB | None | 0 0
  1. import re
  2.  
  3. # with open('test.bin', 'bw') as file:
  4. #     file.write(b'Food\x01Fruit\x02Banana\x03Apple\x03Vegetable\x02Carrot\x03')
  5.  
  6. def insert(tree, path):
  7.     node = tree
  8.     for key in path:
  9.         if not (key in node):
  10.             node[key] = {}
  11.         node = node[key]
  12.  
  13.  
  14. def parse_file(filename):
  15.     pattern = re.compile(b'([a-zA-Z]+)([\x01-\x1F])')
  16.     result = {}
  17.     tree_path = []
  18.     with open(filename, 'rb') as file:
  19.         data = file.read()
  20.     for key, level in re.findall(pattern, data):
  21.         tree_path[ord(level):] = [key]
  22.         insert(result, tree_path)
  23.     return result
  24.  
  25. assert parse_file('test.bin') == {b'Food': {b'Fruit': {b'Vegetable': {b'Carrot': {}}, b'Banana': {b'Apple': {}}}}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement