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"]))