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 foroffset=([^\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()
返回新字符串…对我的答案进行向下投票,并在其中编辑部分答案,这样你的答案会得到更多的曝光。很好,我喜欢。我闻到有东西烧焦了,顺便说一下,我的答案离你的答案很远。我没有说你的答案是错的,但这不足以在所有情况下都能通过。