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

问题描述 投票:1回答:1

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

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 '-'.

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

python string split
1个回答
0
投票
中使用splitlines()

使用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
© www.soinside.com 2019 - 2024. All rights reserved.