2015-01-29 1 views
0

Если я удалю [1:], если работает нормально и печатает все данные.Python пропустить первую строку .readlines() [1:] не работает?

f = open("test.csv", "r") 
lines = f.readlines() 
f.close() 
print lines 

результат:

['title1,title2\raa,aaaa\rbb,bbbb\rcc,cccc'] 

, но если я пытаюсь пропустить первую строку, добавив [1:]

f = open("test.csv", "r") 
lines = f.readlines()[1:] 
f.close() 
print lines 

печатает пустой массив

[] 

Я использую python 2.7.6. Кто-нибудь знает, почему?

+2

кажется вашим Python не настроен для поддержки [универсальных символов новой строки] (https://www.python.org/dev/peps/pep-0278 /). –

+0

Связанный (если не дубликат): [итерация через файлы с возвратом каретки] (https://stackoverflow.com/questions/5174243/iterating-through-files-with-carriage-returns) – sloth

+1

Попробуйте 'f = открыть (" test .csv "," rU ")' вместо 'f = open (" test.csv "," r ")'. Кроме того, при работе с CSV-файлом рассмотрите возможность использования модуля [csv] (https://docs.python.org/2/library/csv.html). – sloth

ответ

1

результат:

['title1,title2\raa,aaaa\rbb,bbbb\rcc,cccc'] 

, но если я пытаюсь пропустить первую строку, добавив [1:] печатает пустой массив

Похоже, у вас есть линия вопрос кодирования платформы , Вы предполагаете, что python читает это как многострочный файл; однако python видит только одну строку.

Измените код, чтобы сделать это ...

f = open("test.csv", "r") 
lines = f.read().splitlines() # Thanks to Ashwini's comment for tip 
f.close() 
print lines 
+3

Вы пытаетесь разбить список, я бы пошел на 'f.read(). Splitlines()'. –

 Смежные вопросы

  • Нет связанных вопросов^_^