Mercurial > hg > webaudioevaluationtool
comparison python/commentquestion_parser.py @ 2745:44a6a61de7fc
Potential fix for #206
author | Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk> |
---|---|
date | Mon, 24 Apr 2017 15:05:43 +0100 |
parents | 091bf99fc601 |
children | 77114de617ba |
comparison
equal
deleted
inserted
replaced
2744:091bf99fc601 | 2745:44a6a61de7fc |
---|---|
25 elif not os.access(os.path.dirname(folder_name), os.W_OK): | 25 elif not os.access(os.path.dirname(folder_name), os.W_OK): |
26 #the file does exist but write privileges are not given | 26 #the file does exist but write privileges are not given |
27 print("No write privileges in folder '"+folder_name+"'.") | 27 print("No write privileges in folder '"+folder_name+"'.") |
28 | 28 |
29 # create folder 'ratings' if not yet created | 29 # create folder 'ratings' if not yet created |
30 if not os.path.exists(folder_name + '/ratings'): | 30 if not os.path.exists(folder_name + '/comments'): |
31 os.makedirs(folder_name + '/ratings') | 31 os.makedirs(folder_name + '/comments') |
32 | 32 |
33 pagestore = {} | 33 pagestore = {} |
34 | 34 |
35 for filename in os.listdir(folder_name): | 35 for filename in os.listdir(folder_name): |
36 if (filename.endswith(".xml")): | 36 if (filename.endswith(".xml")): |
37 tree = ET.parse(folder_name + '/' + file_name) | 37 tree = ET.parse(folder_name + '/' + filename) |
38 root = tree.getroot() | 38 root = tree.getroot() |
39 | 39 |
40 subject_id = root.get('key'); | 40 subject_id = root.get('key'); |
41 | 41 |
42 # get the list of pages | 42 # get the list of pages |
49 if page.get('state') != "complete": | 49 if page.get('state') != "complete": |
50 print("WARNING: " + filename + " contains incomplete page " +pagename+ ". (commentquestion_parser.py)") | 50 print("WARNING: " + filename + " contains incomplete page " +pagename+ ". (commentquestion_parser.py)") |
51 break | 51 break |
52 try: | 52 try: |
53 questionStore = pagestore[pagename] | 53 questionStore = pagestore[pagename] |
54 except KeyValue: | 54 except KeyError: |
55 questionStore = {} | 55 questionStore = {} |
56 pagestore[pagename] = questionStore | 56 pagestore[pagename] = questionStore |
57 | 57 |
58 for cq in page.findall("./comment"): | 58 for cq in page.findall("./comment"): |
59 cqid = cq.get("id"); | 59 cqid = cq.get("id"); |
60 response = cq.find("./response").text | 60 response = cq.find("./response").text |
61 try: | 61 try: |
62 commentStore = questionStore[cqid] | 62 commentStore = questionStore[cqid] |
63 except KeyValue: | 63 except KeyError: |
64 commentStore = []; | 64 commentStore = []; |
65 questionStore[cqid] = commentStore | 65 questionStore[cqid] = commentStore |
66 commentStore.append({"subject": subject_id, "value": response}) | 66 commentStore.append({"subject": subject_id, "value": response}) |
67 print pagestore | 67 |
68 for page in pagestore.keys(): | |
69 print page | |
70 pagedir = folder_name + '/comments/'+page | |
71 if not os.path.exists(pagedir): | |
72 os.makedirs(pagedir) | |
73 for comment in pagestore[page].keys(): | |
74 with open(pagedir+"/"+comment+".csv", "w") as csvfile: | |
75 filewriter = csv.writer(csvfile, delimiter=',') | |
76 filewriter.writerow(("save_id", "value")) | |
77 for entry in pagestore[page][comment]: | |
78 filewriter.writerow((entry["subject"], entry["value"])) |