コード例 #1
0
        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:
コード例 #2
0
                        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 = []
コード例 #3
0
                        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:
コード例 #4
0
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:
コード例 #5
0
    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)