#!/usr/bin/env python # usage: txtsplit.py <input_file_name> <output_dir> # splits a txt2gam file into individual location files # encoded in utf-8, for git to better handle import os import sys import re import io import xml.etree.ElementTree as ET assert len(sys.argv) == 3, "usage:\ntxtsplit.py <input_file_name> <output_dir>" iname = str(sys.argv[1]) odir = str(sys.argv[2]) # read the project xml file first # let's do this later in order to implement directory structure """ tree = ET.parse('glife.qproj') root = tree.getroot() """ ifile = io.open(iname, 'rt', encoding='utf-16') counter = 1 oname = None firstline = ifile.readline().replace(u'\ufeff','') match = re.search(ur'^#\s(\$?[_.\w]+)$', firstline) if match: oname = os.path.join(odir, match.group(1).replace("$","_") + '.qsrc' ) counter += 1 assert oname, "file is in the wrong format, must start with a location name" ofile = io.open(oname, 'w', encoding='utf-8') ofile.write(firstline) for line in ifile: match = re.search(ur'^#\s(\$?[_.\w]+)$', line) if match: ofile.close() oname = os.path.join(odir, match.group(1).replace("$","_") + '.qsrc' ) counter += 1 ofile = io.open(oname, 'w', encoding='utf-8') ofile.write(line)