Mercurial > hg > webaudioevaluationtool
changeset 2095:9cd23951ebf7
Python scripts: fix error which caused omission of ratings of first encountered file
author | Brecht De Man <b.deman@qmul.ac.uk> |
---|---|
date | Mon, 04 Jan 2016 11:59:21 +0100 |
parents | 6c8e1bba243d |
children | 7c39c22a417f |
files | scripts/score_parser.py |
diffstat | 1 files changed, 11 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/score_parser.py Wed Dec 23 14:48:48 2015 +0000 +++ b/scripts/score_parser.py Mon Jan 04 11:59:21 2016 +0100 @@ -34,20 +34,20 @@ file_history = [] # get every XML file in folder -for file in os.listdir(folder_name): - if file.endswith(".xml"): - tree = ET.parse(folder_name + '/' + file) +for file_name in os.listdir(folder_name): + if file_name.endswith(".xml"): + tree = ET.parse(folder_name + '/' + file_name) root = tree.getroot() # get subject ID from XML file - subject_id = file[:-4] # file name (without extension) as subject ID + subject_id = file_name[:-4] # file name (without extension) as subject ID # get list of all pages this subject evaluated for audioholder in root.findall("./audioholder"): # iterate over pages page_name = audioholder.get('id') # get page name if page_name is None: # ignore 'empty' audio_holders - print "WARNING: " + file + " contains empty audio holder. (score_parser.py)" + print "WARNING: " + file_name + " contains empty audio holder. (score_parser.py)" break file_name = folder_name+'/ratings/'+page_name+'-ratings.csv' # score file name @@ -68,7 +68,8 @@ for audioelement in audiolist: # iterate over all audioelements fragmentnamelist.append(audioelement.get('id')) # add to list - # if file exists, get header and add 'new' fragments + + # if file exists, get header and add any 'new' fragments not yet in the header if os.path.isfile(file_name): with open(file_name, 'r') as readfile: filereader = csv.reader(readfile, delimiter=',') @@ -82,7 +83,7 @@ filewriter.writerow(headerrow) file_history.append(file_name) - # Which of the fragmentes are in fragmentnamelist but not in headerrow? + # Which of the fragments are in fragmentnamelist but not in headerrow? newfragments = list(set(fragmentnamelist)-set(headerrow)) newfragments = sorted(newfragments) # new fragments in alphabetical order # If not empty, read file and rewrite adding extra columns @@ -98,7 +99,8 @@ os.rename('temp.csv', file_name) # replace old file with temp file headerrow = headerrow + newfragments - # if not, create file and make header + + # if file does not exist yet, create file and make header else: headerrow = sorted(fragmentnamelist) # sort alphabetically headerrow.insert(0,'') @@ -106,6 +108,7 @@ with open(file_name, 'w') as writefile: filewriter = csv.writer(writefile, delimiter=',') filewriter.writerow(headerrow) + file_history.append(file_name) # open file to write for this page writefile = open(file_name, 'a')