0

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

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

TypeError:需要一个整数

4

3 回答 3

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

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

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

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

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

于 2012-11-23T14:25:50.323 回答
2

只需使用strip()

In [34]: strs="    I_AM_SAM,"

In [35]: strs.strip(" ,") # pass a space " "and "," to strip
Out[35]: 'I_AM_SAM'
于 2012-11-23T14:21:39.510 回答
0

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

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

将产生三个字符串:“Hello”、“there”和“this is a line”。

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

如果这不是您期望的答案,请让问题更清楚:您期望得到什么?您将第二个参数放在 split 中的原因是什么?还有一件事:如果文字字符串中的那个空格是一个制表符,请把它写成 \t 以便于阅读。

于 2012-11-23T14:26:46.633 回答