Разные платформы имеют разные коды для "новой линии". В Windows есть \ r \ n, в Unix есть \ n, в старых маках есть \ r, и да, в некоторых системах есть \ n \ r.
Когда вы открываете файл в текстовом режиме в Python 3, он преобразует все новые строки в '\ n' и с этим покончено.
infile = open("filename", 'r')
Текстовый режим по умолчанию, поэтому, если вы ничего не говорите, это текстовый режим. Но всегда лучше быть точным:
infile = open("filename", 'rt')
Если вы не хотите, чтобы происходил перевод концов строк, откройте файл в двоичном режиме:
infile = open("filename", 'rb')
В Python 2 все по-другому. Там это преобразование будет происходить только по умолчанию в Windows.
Если вы хотите, чтобы это происходило на других платформах, вы можете добавить универсальный флаг перевода строки:
infile = open("filename", 'rU')
Однако вы говорите, что находитесь на Python 3, и там это происходит в текстовом режиме на всех платформах, поэтому добавление флага U не должно иметь никакого значения.