print('Tamanhos diferentes:', len(respostaCSV), len(tmpTXT)) else: respostaTXT = [x.split('. ') for x in tmpTXT] for i in range(0, len(respostaTXT)): if respostaCSV[i][1][0] != respostaTXT[i][1][0]: print('Respostas diferentes para questão:', i, respostaCSV[i][1], respostaTXT[i][1]) if __name__ == '__main__': parser = argparse.ArgumentParser(description='Verifica se os múltiplos leitores concordam com as respostas das questões de múltipla escolha') parser.add_argument('-1', '--corretor1', type=str, required=True, help='Pasta com as respostas do corretor 1 (CSV)') parser.add_argument('-2', '--corretor2', type=str, required=True, help='Pasta com as respostas do corretor 2 (TXT)') args = parser.parse_args() l1 = BuscaArquivos(args.corretor1, recursivo=False, tipo='.csv') l2 = BuscaArquivos(args.corretor2, recursivo=True, tipo='.txt') print(len(l1), len(l2)) dadosCSV = {} for arquivo in l1: dadosCSV[os.path.basename(arquivo)[:-4]] = arquivo dadosTXT = {} for arquivo in l2: dadosTXT[os.path.basename(arquivo)[:-4]] = arquivo for arquivo in dadosTXT.keys(): print(arquivo) if arquivo in dadosCSV:
help='Arquivo informações sobre as provas') parser.add_argument('-s', '--saida', type=str, required=True, help='Pasta de saida') parser.add_argument('-a', '--ausentes', type=str, required=False, help='Arquivo com informações de ausências') args = parser.parse_args() listaArquivos = BuscaArquivos(args.entrada, recursivo=True, tipo='.png', nomeCompleto=False) print(len(listaArquivos), 'arquivos considerados.') entrada = csv.reader(open(args.provas)) next(entrada) alunos = [LinhaProva(a) for a in entrada] print(len(alunos), 'provas consideradas.') if args.ausentes != None: ausentes = csv.reader(open(args.ausentes)) ausentes = ['-'.join(x) for x in ausentes] print(len(ausentes), 'ausentes a processar') else: ausentes = []
required=True, help='Arquivo informações sobre as provas') parser.add_argument('-s', '--saida', type=str, required=True, help='Pasta de provas (saida)') parser.add_argument('-t', '--teste', action='store_true', required=False, help='Testa a execução (não executa nada)') args = parser.parse_args() arquivos = BuscaArquivos(args.entrada, recursivo=True, tipo='.png') entrada = Arquivos2Dict(arquivos) print(len(arquivos), 'arquivos a processar') arquivos = BuscaArquivos(args.saida, recursivo=True, tipo='.png') saida = Arquivos2Dict(arquivos) provas = csv.reader(open(args.dados)) next(provas) provas = [LinhaProva(a) for a in provas] contagem = 0 for p in provas: for folha in p.idPaginas(): # Folha não está na pasta de provas mas tem um arquivo com o nome correto na pasta de entrada if folha in entrada and not folha in saida:
import csv import sys from utils import BuscaArquivos, LinhaProva, Arquivos2Dict import shutil CMD='/home/provas/folhasProvas/scanner/scanner -c ' if __name__ == '__main__': parser = argparse.ArgumentParser(description='Roda o scanner nos arquivos de respostas de múltipla escolha.') parser.add_argument('-e', '--entrada', type=str, required=True, help='Arquivo de entrada com descrição de todas as provas (.csv)') parser.add_argument('-p', '--provas', type=str, required=True, help='Pasta com as provas') parser.add_argument('-t', '--teste', action='store_true', required=False, help='Testa a execução (não executa nada)') args = parser.parse_args() arquivos = BuscaArquivos(args.provas, recursivo = True, tipo = '.png') entrada = Arquivos2Dict(arquivos) print(len(arquivos), 'arquivos a verificar') provas = csv.reader(open(args.entrada)) next(provas) provas = [LinhaProva(a) for a in provas] contagem = 0 for p in provas: if p.questoesObjetivas != 0: folha = p.idPaginas()[0] # A folha .png tem que existir na pasta de entrada mas o arquivo .csv não pode existir if folha in entrada and not os.path.isfile(entrada[folha][:-4] + '.csv'): if args.teste:
arquivoResposta = os.path.join(os.path.dirname(os.path.dirname(nome)), os.path.basename(nome)[:-4] + '.csv') if len(dados) == 1 and dados[0].startswith('Ausente'): campos = QuebraNome(nome) ausentes.append(campos[0:5]) if campos[2].startswith('LIN'): # 6 questões resposta = '1,_\n2,_\n3,_\n4,_\n5,_\n6,_\n' else: resposta = '1,_\n2,_\n3,_\n4,_\n' open(arquivoResposta, 'wt').writelines(resposta) else: resposta = [x[:-1].split('. ') for x in dados] csv.writer(open(arquivoResposta, 'wt')).writerows(resposta) if __name__ == '__main__': parser = argparse.ArgumentParser(description='Converte os arquivos de leitura de múltipla escolha de .txt para .csv') parser.add_argument('-e', '--entrada', type=str, required=True, help='Pasta com os arquivos de entrada') parser.add_argument('-s', '--saida', type=str, required=True, help='Arquivo com informações sobre os ausentes') args = parser.parse_args() txt = BuscaArquivos(args.entrada, recursivo=True, tipo='.txt') ausentes = [] for arquivo in txt: if not '-presenca-' in arquivo: ConverteTXT2CSV(arquivo, ausentes) csv.writer(open(args.saida, 'wt')).writerows(ausentes)