2015-05-07 33 views
1

在Python中,我試圖解析一個文件並分離值,但是,我正在使用一個奇怪的分隔符。任何人都可以幫忙嗎?謝謝!奇怪的分隔符

我解析該文件中的行出現類似於:

john-burk AL 
john-smith CA 
john-joe FL 
john-john TX 

當前代碼:

with open('info.txt', 'r') as f: 
    for line in f: 
     try: 
      name, state = line.split(<do not know what to use>) 
     except Exception as e: 
      print "[-] Error parsing data " + str(e) 

預期輸出:

name = "john-burk" 
state = "AL" 
+0

預期產量是多少? – thefourtheye

+0

看起來像一個''\ t''(標籤)字符給我。 – Gall

+0

哦,對不起,應該澄清一點。預期應該是'name =「john-burk」,state =「AL」' –

回答

2

引用str.split文檔,

str.split([sep[, maxsplit]]) 如果未指定None,一個不同的分割算法被應用於連續空白的運行被視爲單一的分離器,結果將不包含空字符串在開始或如果字符串具有前導或尾隨空白,則結束。

所以,你可以簡單地做

name, state = line.split() 
print name, state 

,因爲我們沒有帶指定的分隔,巨蟒將分裂基礎上的任何數量的連續空白字符作爲分隔符。所以,你的數據可以被分成namestate

注:如果name有任何空白字符這是行不通的。

+0

這是我正在尋找的答案。我不敢相信自己是在反思。當我允許時,我會選擇這個作爲答案。謝謝! –