2017-01-30 42 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

編輯:發現錯誤,這是錯誤的輸入文件格式。仍然,感謝您的幫助,人們

+1

'line.strip()分裂( 「\ t \ t」 的)'? – 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

如果我的答案是有幫助的,不要忘記[接受](http://meta.stackexchange.com/a/5235/345643)它。謝謝。 – zipa