Podemos abrir múltiplos ficheiros de uma vez e operar neles conjuntamente:
with open('doc1.txt') as d1, open('doc2.txt', 'w') as d2:
text = d1.read() # Ler tudo de doc1.txt
d2.write(text) # Escrever o conteúdo em doc2.txt
print('Done copying the content')
Aqui, abrimos o doc1.txt com o modo r (leitura) e o doc2.txt com o modo w (escrita). Várias operações open são separadas por uma vírgula. No corpo do bloco with, todos os ficheiros abertos estão acessíveis e podemos realizar diferentes operações neles.
Desafio
Ao desenvolver um sistema de deteção de similaridade, decides comparar dois ficheiros. Queres saber a percentagem de palavras que estão presentes em ambos os ficheiros.
O primeiro ficheiro é source.txt e o segundo é student.txt. Calcula o número de palavras únicas em ambos os ficheiros e imprime a percentagem das palavras únicas em source.txt que também estão presentes em student.txt.
source.txt
student.txt
Saída
Line 1
Line two
Line is important
33.333333
Line 1
Line two
Line 3
Line 1 is important
Yes
50
Explicação do 1º exemplo: Há 3 palavras únicas em source.txt (Line, 1, two). A palavra Line também está presente em student.txt, portanto 33.33333% das palavras de source.txt estão presentes no segundo ficheiro também.