É necessário fechar arquivos que não têm referência a eles?

Como iniciante completo em programação, estou tentando entender os conceitos básicos de abertura e fechamento de arquivos. Um exercício que estou fazendo é criar um script que me permita copiar o conteúdo de um arquivo para outro.

in_file = open(from_file)
indata = in_file.read()

out_file = open(to_file, 'w')
out_file.write(indata)

out_file.close()
in_file.close()

Eu tentei encurtar esse código e veio com isso:

indata = open(from_file).read()
open(to_file, 'w').write(indata)

Isso funciona e parece um pouco mais eficiente para mim. No entanto, também é aqui que fico confuso. Eu acho que deixei de fora as referências aos arquivos abertos; não havia necessidade das variáveis in_file e out_file. No entanto, isso me deixa com dois arquivos que estão abertos, mas não têm nada referente a eles? Como as fecho ou não é necessário?

Qualquer ajuda que mostre alguma luz sobre esse tópico é muito apreciada.

questionAnswers(6)

yourAnswerToTheQuestion