Python,按空格分割字符串,类似于awk

1 投票
2 回答
3260 浏览
提问于 2025-04-17 12:56

我需要根据空格把字符串分开:

mystring = ['1      SLES11 SP1 64bit            [datastore1] SLES11 SP1 64bit/SLES11 SP1 64bit.vmx   sles11_64Guest          vmx-08  ']
#Removes white spaces
mystring.strip()

我想要的效果,跟awk的输出差不多:

# awk '{print $1, $2}' mystring
1 SLES11 SP1 64bit

我需要把跟awk类似的输出放到一个数组里,然后读取这些数据。

提前谢谢你们。

2 个回答

0

不使用正则表达式:

>>> mystring = '1      SLES11 SP1 64bit            [datastore1] SLES11 SP1 64bit/SLES11 SP1 64bit.vmx   sles11_64Guest          vmx-08  '
>>> a, dummy, c = mystring.partition("  ")
>>> print(a, c.lstrip().partition("  ")[0])
1 SLES11 SP1 64bit
3

所以你想要在两个或更多的空格字符上进行分割吗?

>>> mystring = ['1      SLES11 SP1 64bit            [datastore1] SLES11 SP1 64bit/SLES11 SP1 64bit.vmx   sles11_64Guest          vmx-08  ']
>>> import re
>>> re.split(r"\s{2,}", mystring[0].strip())
['1', 'SLES11 SP1 64bit', '[datastore1] SLES11 SP1 64bit/SLES11 SP1 64bit.vmx',
'sles11_64Guest', 'vmx-08']

撰写回答