2017-01-30 2 views
0

Я пытаюсь прочитать файл в Python, который выглядит примерно так:Python - Разделение по вкладкам и новых линий

hello\t\tsecondhello\n 
this\t\tsecondthis\n 
is\t\tsecondis\n 
data\t\tseconddata\n 

я заинтересован только во второй части информации для каждой строки, так Я пытаюсь избавиться от этих двух вкладок и новых строк. Я попытался это:

documents = open("data.txt", "r").readlines() 
for line in documents: 
    splitted = line.strip().split("\t") 
    print(splitted) 

Но это только дает мне список объектов, которые выглядят следующим образом:

['hello\t\tsecondhello'] 

Я также посмотрел на этот принятый ответ, но это дает мне то же самое, что только новые линии также сохраняются: splitting a string based on tab in the file

EDIT: обнаружена ошибка, это было ложное форматирование во входном файле. еще, спасибо за помощь, люди

+1

'line.strip() раскол ("\ т \ т")'? – ozgur

+0

nope, попробовал это уже, получив тот же результат – dot

+0

Я не получаю тот же результат. Я использую Python 2.7, и каждая строка делится на три поля, как я ожидаю: строки, такие как ['hello', '', 'secondhello']. Можете ли вы попробовать распечатать строку и разделительную строку, по одному символу за раз? – Prune

ответ

2

Похоже, что ваши \ t фактически экранированы, а не фактические вкладки. Так что попробуйте

line.strip().split("\\t\\t") 
+0

, к сожалению, я получаю тот же результат с этим – dot

0

Это работает с данными, вы предоставили:.

data = documents.strip().split('\n') 
wanted_data = [item.split('\t')[2] for item in data if item] 
+0

Получение этого атрибута AttributeError: Объект «list» не имеет атрибута «strip». – dot

+0

Да, удалите метод 'readlines()', и он будет работать – zipa

+0

Если бы мой ответ был полезным, не забудьте [accept] (http://meta.exackchange.com/a/5235/345643). Благодарю. – zipa

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