12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/env python3
- # 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('^#\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('^#\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)
-
|