2013-08-25 70 views
3

下面是我的一些代碼:使用line.split直到空白

with open ('sampleID.txt', 'r') as inF: 
     for line in inF: 
      if 'Sample ID:' in line: 

       SID = line.split(':')[1] 

文本文件(sampleID.txt)具有以下內容: 樣品編號:110715516102 ABC

現在的問題是,我該如何糾正我的代碼,以便SID = 110715516102
line.split正在工作,但它包含一個空白區域,我想避免這種情況。

非常感謝你的幫助/支持

+0

我認爲'條()'函數是你在找什麼 – Lix

回答

0

您可以刪除多餘的空間與strip()功能:

with open ('sampleID.txt', 'r') as inF: 
     for line in inF: 
      if 'Sample ID:' in line: 

       SID = line.split(':')[1].strip() 
+0

非常感謝這解決了我的問題.. – KoenP

0

如果線路佈局始終是相同的(即,相同數量的空格ID之前),只是做:

SID = line.split()[2] 
+0

陣列開始0,所以SID是該指數1 ... –

+0

@MaximeLorant的,索引1將字符串' ID:'。 –

+0

嗯,你用空格分開,而不是':'好吧。我的錯。 –

0

我相信所有你需要做的就是運行通過strip()功能,最後一個字符串。

str.strip([chars])

返回去除了開頭和結尾字符字符串的副本。 chars參數是一個字符串,指定要刪除的字符集。 如果省略或無,chars參數默認爲刪除空格。

所以內環路您的命令看起來是這樣的:

SID = line.split(":")[ 1 ].strip() 

參考:

0

再次分裂它的空白,並採取第一「word」獲得110715516102

SID = line.split(':')[1].split()[0] 
         ^^^^^^^^^^^