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