我需要在变量中分割一个值

时间:2019-05-30 12:57:47

标签: python unix centos

我需要按照以下方式拆分以下代码中定义的路径

k[0] = /dev/mapper/centos-root
k[1] = 52403200
k[2] = 14460252 an so on.

我尝试了什么? 我尝试使用split函数,但目前需要k [0] = / 另外,我尝试将其传递到整个上下文作为一个值的列表中

command = ("df -P | egrep '([20][0-9]|100)%' |  awk '{print}'|sed -e 's/ / : /g'")
command_execute = (stdin, stdout, stderr) = ssh.exec_command(command)
read_contents = stdout.read().decode("utf-8")
read_contents
'/dev/mapper/centos-root :  :  :  : 52403200 : 14460252 :  : 37942948 :  :  :  :  :  : 28% : /\n'
k=read_contents[0]
k
'/'
k=read_contents[1]
k
'd'
k.split(" ")
['d']
m =k.split(":")
m
['d']
s = [read_contents]
s
['/dev/mapper/centos-root :  :  :  : 52403200 : 14460252 :  : 37942948 :  :  :  :  :  : 28% : /\n']
s[0]
'/dev/mapper/centos-root :  :  :  : 52403200 : 14460252 :  : 37942948 :  :  :  :  :  : 28% : /\n'
s[1]
Traceback (most recent call last):
  File "<input>", line 1, in <module>
IndexError: list index out of range
s[0]
'/dev/mapper/centos-root :  :  :  : 52403200 : 14460252 :  : 37942948 :  :  :  :  :  : 28% : /\n'

k[0] = /dev/mapper/centos-root
k[1] = 52403200
k[2] = 14460252 an so on.

3 个答案:

答案 0 :(得分:0)

release.service2.services.example.com上分割时,您希望摆脱带有空格的字符串

:

答案 1 :(得分:0)

另一种选择是使用filter函数按期望的数字长度进行选择。

read_contents = '/dev/mapper/centos-root :  :  :  : 52403200 : 14460252 :  : 3794...: 2948 :  :  :  :  :  : 28% : /\n'
k = list(filter(lambda x: len(x)>5, read_contents.split(':')))

输出:

print(k)
['/dev/mapper/centos-root ', ' 52403200 ', ' 14460252 ', ' 3794...', ' 2948 ']

答案 2 :(得分:-1)

import re
a='/dev/mapper/centos-root :52403200 : 14460252 :  : 37942948 :  :  :  :  :  : 28% : /\n'
print(re.split(r'(?:\s+:)+',a))