拆分字符串时,如何跳过包含空格的字段?

时间:2020-06-06 17:30:33

标签: python string split

我是编程新手,正在编写处理特定字符串的代码,它将输入字符串分成两个参数。 输入字符串如下所示:

Foo 15
Bar 2

我在代码中使用splitlines()逐行拆分它们,然后使用split()将其进一步拆分为如下列表:

data = "Foo 15\nBar 2\n"
data_lines = data.splitlines()
for data in data_lines:
    print ("{} x {}".format(data.split()[0],data.split()[1])) #[0] is the name, [1] is the number

但是在某些情况下,输入字符串的名称带有这样的空格:

Foo - bar 15
Foo II 6
Foo S 100

在这种情况下,data.split()将返回错误的结果并导致类似ValueError: Field 'stock' expected a number but got '-'.的错误

所以,我的问题是标题,如何使用空格检测这些字段并将其拆分为一个元素?任何建议或指导都可以,谢谢。

1 个答案:

答案 0 :(得分:0)

使用rsplit

从右端开始指定一个拆分。

s = """Foo - bar 15
Foo II 6
Foo S 100"""

for data in s.splitlines():
  name, value = data.rsplit(' ', maxsplit = 1)
  print ("{} x {}".format(name, value))

输出

Foo - bar x 15
Foo II x 6
Foo S x 100