2013-08-25 92 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] 
         ^^^^^^^^^^^