2013-01-20 1 views
1

содержимое файла выглядит следующим образом:.txt файл действует странно под readlines()

1/15/13,930,1441.5 
1/15/13,1000,1442.75 
1/15/13,1030,1444 

Я бегу:

the_txt_file = open('/txt_file') 

Тогда я бегу:

the_txt_file_as_a_list = the_txt_file.readlines() 

Затем я запускаю:

print the_txt_file_as_a_list 

И я получаю это:

['1/15/13,930,1441.5\r1/15/13,1000,1442.75\r1/15/13,1030,1444\r1/'] 

Но я ожидал что-то вроде:

['1/15/13,930,1441.5\n','15/13,1000,1442.75\n','15/13,1030,1444\n'] 

Это случается со мной довольно часто, что происходит?

+0

$ XXD/txt_file если что-то не так с файлом – farmer1992

+0

Похоже, файл имеет возврат каретки (\ r), но нет перевода строки (\ п). – mgoffin

+0

Как я могу исправить эту проблему? – user1367204

ответ

1

Я бы предположил, что вы, или оригинальный создатель этого файла данных, были на Mac. Кажется, вы ожидаете, что это будет простое окончание строки «\ n», но страдают от окончательной строки по умолчанию для исходной редакции редактора (скорее всего).

легко исправить, чтобы позвонить open(...) с rU вариант, как так:

the_txt_file = open('/txt_file', 'rU')

Это гарантирует, что файл открыт г EAD только и использует U niversal новой строки поддержки, когда чтение конкретного файла.

Удачи вам!

+0

Это сработало отлично. Я протестировал его, выполнив две разные вещи: 1. распечатать файл_txt_file 2. для элемента в файле_txt_file: print item – user1367204

2

Таким образом, кажется, что проблема что-то делать с тем, как мой макинтош взаимодействовали с .txt файл

Проблема была зафиксирована путем замены:

the_txt_file = open('/txt_file') 

с:

the_txt_file = open('/txt_file', 'rU') 

«rU» называется универсальной-readline. Открытие файла в режиме «rU» открывает файл в режиме Universal readline.После бега:

the_txt_file_as_a_list = the_txt_file.readlines() 

, а затем:

print the_txt_file_as_a_list 

мой выход пошел от:

['1/15/13,930,1441.5\r1/15/13,1000,1442.75\r1/15/13,1030,1444\r1/'] 

к:

['1/15/13,930,1441.5\n', '1/15/13,1000,1442.75\n', '1/15/13,1030,1444\n'] 

Позже, я был в состоянии напечатать каждый элемент отдельно от:

for item in the_txt_file_as_a_list: 
    print item 

Выходной сигнал выглядел:

1/15/13,930,1441.5 

1/15/13,1000,1442.75 

1/15/13,1030,1444