Python 使用拆分和剥离的最佳方法

Python 使用拆分和剥离的最佳方法,python,split,strip,Python,Split,Strip,我的函数为命令刮取我的服务器,并沿offset=1.3682的行输出一些东西,metrics\u emit用于发送到我们的度量收集器/可视化工具datadog 我需要做的是去掉offset=部分,因为metrics\u emit只需要数值。剥离offset=以及在i上调用strip()以消除所有换行符和尾随/前导空格的最佳方法是什么 def check(self): output = sh.ntpq("-nc rv") out_list = output.split(",")

我的函数为命令刮取我的服务器,并沿
offset=1.3682
的行输出一些东西,
metrics\u emit
用于发送到我们的度量收集器/可视化工具datadog

我需要做的是去掉
offset=
部分,因为
metrics\u emit
只需要数值。剥离
offset=
以及在
i
上调用
strip()
以消除所有换行符和尾随/前导空格的最佳方法是什么

def check(self):
    output = sh.ntpq("-nc rv")
    out_list = output.split(",")
    for i in out_list:
        if "offset" in i:
            self.metrics_emit('ntp.offset', i)
            break
.strip()
用于删除空白字符

.replace('offset=','')
用于删除该字符串

您也应该能够链接它们。

.strip()
用于删除空白字符

.replace('offset=','')
用于删除该字符串

你也应该能把它们锁起来

如何提取出现在
偏移量=
之后的数值

为什么我喜欢正则表达式?因为即使字符串包含其他关键字,正则表达式也会提取出现在
偏移量=
表达式后面的数值。例如,使用我给出的示例检查以下情况

string = 'welcome to offset=1.3682 Stackoverflow'
string = 'offset=abcd'
如何删除前导和尾随空白字符

将删除所有前导和尾随空格字符,例如\n、\r、\t、\f、空格

要获得更大的灵活性,请使用以下命令

  • 仅删除前导的空格字符:
    myString.lstrip()
  • 仅删除尾随的空格字符:
    myString.rstrip()
  • 删除specific空格字符:
    myString.strip('\n')
    myString.lstrip('\n\r')
    myString.rstrip('\n\t')
    等等
参考:这样看

如何提取出现在
偏移量=
之后的数值

为什么我喜欢正则表达式?因为即使字符串包含其他关键字,正则表达式也会提取出现在
偏移量=
表达式后面的数值。例如,使用我给出的示例检查以下情况

string = 'welcome to offset=1.3682 Stackoverflow'
string = 'offset=abcd'
如何删除前导和尾随空白字符

将删除所有前导和尾随空格字符,例如\n、\r、\t、\f、空格

要获得更大的灵活性,请使用以下命令

  • 仅删除前导的空格字符:
    myString.lstrip()
  • 仅删除尾随的空格字符:
    myString.rstrip()
  • 删除specific空格字符:
    myString.strip('\n')
    myString.lstrip('\n\r')
    myString.rstrip('\n\t')
    等等

参考:这样看。

简单的方法是:

i.strip().split('offset=')[1]
例如:

def scrape(line):
    return line.strip().split('offset=')[1]
例如:

>>> scrape('offset=1.3682')
'1.3682'

如果需要转换输出,则由您决定。

简单的方法是:

i.strip().split('offset=')[1]
例如:

def scrape(line):
    return line.strip().split('offset=')[1]
例如:

>>> scrape('offset=1.3682')
'1.3682'

如果您需要转换输出,则由您决定。

Regex for
offset=([^\s]+)
?Regex for
offset=([^\s]+)
?那么OP将如何获得
offset=
之后的数值部分?
string='offset=1.3682'
-->
string.replace('offset=','').strip()
-->-->1.3682'()打开以进行翻译?
.replace()
strip()
返回新字符串…向下投票我的答案并编辑我的答案的一部分,这样你的答案会有更多的曝光率。很好,我喜欢它。我闻到有东西烧焦了,顺便说一下,我的答案离你的答案很远。我没有说你的答案是错的,但这不足以在所有情况下都通过。那么OP之后如何获得数值部分
offset=
string='offset=1.3682'
-->
string.replace('offset=','').strip()
-->-->
'1.3682'
,您可以使用
float()
打开它来翻译它?
.replace()
strip()
返回新字符串…对我的答案进行向下投票,并在其中编辑部分答案,这样你的答案会得到更多的曝光。很好,我喜欢。我闻到有东西烧焦了,顺便说一下,我的答案离你的答案很远。我没有说你的答案是错的,但这不足以在所有情况下都能通过。