2 changed files with 69 additions and 1 deletions
@ -0,0 +1,68 @@
|
||||
import csv |
||||
|
||||
csv_file = open("output.csv", mode="w", encoding="UTF-8", newline='') |
||||
writer = csv.writer(csv_file) |
||||
src_file = open("drone.txt", mode="r", encoding="UTF-8") |
||||
src_string = src_file.read() |
||||
chap1_pos = src_string.find("第一章") |
||||
chap2_pos = src_string.find("第二章", chap1_pos) |
||||
chap3_pos = src_string.find("第三章", chap2_pos) |
||||
chap4_pos = src_string.find("第四章", chap3_pos) |
||||
chap1_ans_pos = src_string.find("第一章", chap4_pos) |
||||
chap2_ans_pos = src_string.find("第二章", chap1_ans_pos) |
||||
chap3_ans_pos = src_string.find("第三章", chap2_ans_pos) |
||||
chap4_ans_pos = src_string.find("第四章", chap3_ans_pos) |
||||
|
||||
|
||||
|
||||
|
||||
data_list = [] |
||||
|
||||
def getBlock(current_pos, end_pos, current_ans_pos, end_ans_pos, label): |
||||
question_number = 1 |
||||
while(1): |
||||
search_key = str(question_number) + ". " |
||||
question_pos = src_string.find(search_key, current_pos, end_pos) |
||||
if(question_pos == -1): |
||||
break |
||||
#print(src_string[question_pos:].split("\n")[0]) |
||||
options1_pos = src_string.find("(A)", question_pos, end_pos) |
||||
options2_pos = src_string.find("(B)", options1_pos, end_pos) |
||||
options3_pos = src_string.find("(C)", options2_pos, end_pos) |
||||
options4_pos = src_string.find("(D)", options3_pos, end_pos) |
||||
|
||||
question_str = src_string[question_pos:].split("\n")[0] |
||||
options1_str = src_string[options1_pos+4 : options2_pos] |
||||
options2_str = src_string[options2_pos+4 : options3_pos] |
||||
options3_str = src_string[options3_pos+4 : options4_pos] |
||||
options4_str = src_string[options4_pos+4:].split("\n")[0] |
||||
|
||||
#print(question_str) |
||||
question = [] |
||||
question.append(question_number) |
||||
question.append(question_str.split(search_key)[1]) |
||||
#question.append(options1_str.split("(A)")[1]) |
||||
#question.append(options2_str.split("(B)")[1]) |
||||
#question.append(options3_str.split("(C)")[1]) |
||||
#question.append(options4_str.split("(D)")[1]) |
||||
|
||||
question.append(options1_str.strip()) |
||||
question.append(options2_str.strip()) |
||||
question.append(options3_str.strip()) |
||||
question.append(options4_str.strip()) |
||||
|
||||
ans_pos = src_string.find(search_key, current_ans_pos, end_ans_pos) |
||||
ans_str = src_string[ans_pos:].split(search_key)[1][0] |
||||
|
||||
question.append(ans_str) |
||||
question.append(label+str(question_number)) |
||||
data_list.append(question) |
||||
#print(question) |
||||
question_number += 1 |
||||
|
||||
|
||||
getBlock(chap1_pos, chap2_pos, chap1_ans_pos, chap2_ans_pos, "第一章") |
||||
getBlock(chap2_pos, chap3_pos, chap2_ans_pos, chap3_ans_pos, "第二章") |
||||
getBlock(chap3_pos, chap4_pos, chap3_ans_pos, chap4_ans_pos, "第三章") |
||||
getBlock(chap4_pos, chap1_ans_pos, chap4_ans_pos, -1, "第四章") |
||||
writer.writerows(data_list) |
||||
|
Loading…
Reference in new issue