Advertisement
Guest User

gproj-update

a guest
May 19th, 2013
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.93 KB | None | 0 0
  1. #!/usr/bin/python
  2. data_folder = 'data'
  3.  
  4. import os
  5. import sys
  6. from lxml import etree as ET
  7.  
  8. if len(sys.argv) < 2 :
  9.     sys.exit("Usage: gproj-update my_project.gproj [data_filename='data']")
  10.  
  11. if len(sys.argv) >= 3 :
  12.     data_folder = sys.argv[2]
  13.  
  14. filename = sys.argv[1]
  15.  
  16. parser = ET.XMLParser(remove_blank_text=True)
  17. tree = ET.parse(filename, parser)
  18. root = tree.getroot()
  19. data = None
  20.  
  21. for folder in root.findall('folder') :
  22.     if folder.attrib['name'] == data_folder :
  23.         data = folder
  24.         for child in folder :
  25.             folder.remove(child)
  26.            
  27. def walk(root, tag) :
  28.     for item in os.listdir(root) :
  29.         path = os.path.join(root, item)
  30.         print(path)
  31.         if os.path.isdir(path) :
  32.             folder = ET.SubElement(tag, 'folder')
  33.             folder.attrib['name'] = item
  34.             walk(path, folder)
  35.         else :
  36.             file = ET.SubElement(tag, 'file')
  37.             file.attrib['source'] = path
  38.            
  39. walk(data_folder, data)
  40. tree.write(filename, pretty_print=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement