在Python中拆分字符串

时间:2012-11-23 14:18:48

标签: python python-2.7

我有一个####I_AM_SAM,的字符串。我想要的是只使用文本部分。所以我试图使用split并将其拆分为:line = f.readline().split(',' ,' ')其中f.readline()读取此“I_AM_SAM”。我期望line [0]获取文本,但这给了我一个错误。请注意,文本“I_AM_SAM”之前有4个空格。我用空格键表示“#”符号。

line = f.readline().split(',' ,'    ')
  

TypeError:需要一个整数

3 个答案:

答案 0 :(得分:3)

只需使用strip()

In [34]: strs="    I_AM_SAM,"

In [35]: strs.strip(" ,") # pass a space " "and "," to strip
Out[35]: 'I_AM_SAM'

答案 1 :(得分:2)

line = f.readline().split(',' ,'    ')
  TypeError: an integer is required

是由split的第二个参数引起的,它必须是一个整数:

  

S.split([sep [,maxsplit]]) - >字符串列表

     

使用sep作为分隔符字符串,返回S中单词的列表。   如果给出maxsplit,则最多完成maxsplit分割。如果不是sep   指定或是None,任何空格字符串都是分隔符并且为空   从结果中删除字符串。

在您的情况下,您需要line = f.readline().split(',')[0]。另外,请考虑使用re.sub

答案 2 :(得分:0)

Split有两个参数,第一个是要拆分的分隔符,第二个是它执行的最大拆分数。所以这段代码:

'Hello there, this is a line'.split (' ', 2)

会产生三个字符串:'Hello','there'和'this is a line'。

您想要省略第二个参数,或将其设为1(不确定,您的描述不够清晰)。如果您想要拆分多个字符,则需要多次调用才能拆分。

如果这不是您所期望的答案,请更清楚地说明问题:您期望获得什么?你把第二个参数分成两部分的原因是什么?还有一件事:如果文字字符串中的那个空格是一个标签,请将其写为\ t以便于阅读。