我在处理字符串,从命令行获取输入。例如,使用此输入:
format driveName "datahere"
当我走的时候字符串.拆分(),结果是:
^{pr2}$这就是我想要的。在
但是,当我指定为字符串.拆分(“”,2),我得到:
>>> input.split(' ', 2)
['format\n, 'driveName\n', '"datahere"']
有人知道我为什么和如何解决这个问题吗?我以为这可能是因为我在Windows上创建并运行在Unix上,但是在Unix中使用nano时也会出现同样的问题。在
第三个参数(data)可能包含换行符,因此我谨慎地不要使用一个彻底的换行符移除器。在
使用
None
可获得具有限制的默认空白拆分行为:这使得
input()
的结尾的空白保持不变。在或者,您可以在之后去掉这些值;这将从每个结果字符串的开始和结尾(而不是中间)删除空白,就像
^{pr2}$input.split()
将:split()
中的默认分隔符是所有空白,包括换行符\n
和空格。在这是docs on split说的:
当您定义一个新的
sep
时,它只使用这个分隔符来split
字符串。在默认的
str.split
针对许多“空白字符”,包括制表符和其他字符。如果执行str.split(' ')
,则告诉它在' '
(一个空格)上只拆分一个。您可以通过指定None
获得默认行为,如str.split(None, 2)
。在可能有更好的方法来实现这一点,这取决于您的实际用例是什么(您的示例没有复制问题…)。由于示例输出暗示新行作为分隔符,所以应该考虑显式地拆分新行。在
在第一个项目和第二个项目中允许有空格。在
相关问题 更多 >
编程相关推荐