Um colega e eu estávamos revisando algumas propostas de alunos. Ele gosta de usar o IDLE, enquanto eu uso o PyCharm. O aluno desenvolveu seu código no PyCharm. Um exemplo simplificado do trabalho do aluno é:
file = open('test_file.txt','w')
file.write('This is a test file.')
print('Completed')
exit()
O aluno cometeu um erro no tratamento do arquivo e criou uma situação em que o arquivo ficou aberto após a conclusão do código.
Quando executado no PyCharm, o comando file.write é concluído e o arquivo é atualizado conforme o esperado. Quando executado no IDLE, o comando file.write parece não ter sido concluído e o arquivo está vazio. Quando executado na linha de comando (aliás, todos nós usamos Macbooks), o comando file.write é concluído e o arquivo contém a linha de texto. Outra dica é que, ao ser executado no IDLE, após a mensagem "Concluído" ser exibida, aparece uma caixa de diálogo do sistema que diz: "Seu programa ainda está em execução! Deseja encerrá-lo?". Este aviso não aparece quando executado na linha de comando ou no PyCharm.
Estamos tentando entender a diferença entre esses comportamentos, pois acreditamos que todos eles realizam o mesmo processo de invocar o mesmo intérprete.