2013-04-18 68 views
0

我試圖讀取製表符分隔但字段可能包含換行符的文件,我想維護具有換行符的字段。我目前的實現從每個「\ n」創建新的字段。(Python)使用換行符解析製表符分隔的字符串

我已經嘗試過csv模塊,只是在「\ t」上分裂,沒有找到我要找的東西。以下是從給定的文件中的樣本行:

* Field_1 \噸Field_2 \噸Field_3 \ N個附加文字\ n更多文本\噸Field_4 *

我想生成從4個元素的列表上面的數據。

* [ 「Field_1」, 「Field_2」, 「字段3 \ n附加文本\ n多的文字」, 「Field_4」] *

任何想法或建議將是有益的。

+4

等等,你怎麼知道文件中新行與新內容中的新行之間的區別?或者你是否說文件中有字面反斜槓-n? – wim 2013-04-18 02:03:50

+1

字段3是否包含在引號字符中?在文本編輯器中查看您的數據文件以確保您的答案。 – 2013-04-18 02:06:49

回答

3

您是否嘗試在此選項卡上分割?

data = 'Field_1 \t Field_2 \t Field_3 \n Additional Text \n More text \t Field_4' 
print data.split('\t') 
+0

簡單,謝謝。 – 5k1zk17 2013-04-18 02:34:45

1

與路徑替換fileName給你從讀取文件:

inFile = open(fileName, "r") 
rawData = inFile.read() # Entire file's contents as one multiline string (if there's a line break) 
data = rawData.split("\t") 
inFile.close() 

也有使用with語句文件的選項(一般建議)I/O:

with open(fileName, "r") as inFile: 
    rawData = inFile.read() # Entire file's contents as one multiline string (if there's a line break) 
    data = rawData.split("\t") 
# you can omit the inFile.close() statement. 

對於with語句,打開的文件流將在運行時出現的錯誤時自動關閉,但它是les這對於人們學習文件I/O如何工作很明顯。