Необходимо перевернуть файл, но в последней строке нет возврата каретки, поэтому первый элемент в обратном списке содержит 2 строки - PullRequest
0 голосов
/ 25 мая 2011

Вот файл

303620.43,6187793.62
303663.61,6187757.08
303652.22,6187702.51
303580.10,6187685.43
303551.63,6187737.15
303574.88,6187775.11
303610.94,6187773.69

Когда он перевернут, я получаю

303610.94,6187773.69303574.88,6187775.11
303551.63,6187737.15
303580.10,6187685.43
303652.22,6187702.51
303663.61,6187757.08
303620.43,6187793.62

Как мне убедиться, что последняя строка при перевернутом имеет '\n'?

Ответы [ 3 ]

5 голосов
/ 25 мая 2011

Используйте rstrip для удаления новой строки (и других конечных пробелов) с всех строк, затем положитесь на print, чтобы вернуть его обратно.

a = [ln.rstrip() for ln in open('datafile.txt')]
a.reverse()
for ln in a:
    print(ln)
1 голос
/ 25 мая 2011

В вашем коде после прочтения строки убедитесь, что она заканчивается на '\n'. Если этого не произойдет, добавьте '\n' и продолжайте, как вы уже делаете.

Метод endswith, вероятно, пригодится.

0 голосов
/ 25 мая 2011

+ 1 для ответа larsmans. Другое решение - использовать метод splitlines для строковых объектов:

myFile = open(filePath, 'r')
lines = myFile.read().splitlines() #by default splitlines removes trailing '\n'
myFile.close()
lines.reverse()
for line in lines:
    print line
...