如何在参数内搜索并输出某个值

2024-06-16 10:55:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的脚本,我不能让它搜索字符串然后输出值

如何获取参数并将其拆分,以便搜索“endpoint machine name=”,然后输出其值

命令如下:

python -u HostnameScript.py "discover-repository-location=null, Employee Notified=null, Manager     Title=Exec Dir Biostatistics, date-detected=Mon Aug 25 16:03:35 PDT 2014, endpoint-machine-name=Davidpc, incident-id=603, sender-ip=null, Machine Name=null, Assigned To=null, Business Unit=Development US"

我试过将其拆分,但无法正确搜索

import sys, socket, string, commands, os, re, subprocess

arguments=sys.argv[1:]

for args in [item.split(", ") for item in arguments[]:
 if item.find("endpoint-machine-name=") != -1
 value=item.strip("endpoint-machine-name=")
 sys.stdout.write('Hostname=');print value

我最后得到的只是

Hostname=discover-repository-location=null, Employee Notified=null, Manager Title=Exec Dir Biostatistics, date-detected=Mon Aug 25 16:03:35 PDT 2014, endpoint-machine-name=Davidpc, incident-id=603, sender-ip=null, Machine Name=null, Assigned To=null, Business Unit=Development US

Tags: nametitlerepositorydirsysemployeemanagerlocation
2条回答

像这样的怎么样

import sys

pairs = sys.argv[1]

for p in pairs.split(', '):
    if 'endpoint-machine-name=' in p:
        print p.replace('endpoint-machine-name=', 'Hostname=')
        break

…或者,如果您真的想分析这些对:

import sys

pairs = sys.argv[1]

for p in pairs.split(', '):
    k, v = p.split('=', 1)

    if k == 'endpoint-machine-name':
        print 'Hostname={0}'.format(v)
        break

当然,如果字符串', '出现在数据库中的任何位置,您都会遇到问题 价值观。而且,strip也不是这样工作的strip 将字符串作为参数,该参数表示 应该从字符串中剥离,而不是特定的有序序列 角色

如您所述,如果您需要使用其他脚本中的功能,请将其设置为独立的功能:

import sys

function find_host(pairs):
    for p in pairs.split(', '):
        k, v = p.split('=', 1)

        if k == 'endpoint-machine-name':
            print 'Hostname={0}'.format(v)
            break

if __name__ == '__main__':
    find_host(sys.argv[1])

谢谢你的帮助。。我当然是在你的帮助下弄明白的

这是我使用的代码

#!/usr/bin/python

import sys

value2 = sys.argv[1:]


for p in value2:
    if 'policy-name=' in p:
            print p.replace('policy-name=','Policy Name=')
    if 'date-detected=' in p:
            print p.replace('date-detected=','Event Date=')

相关问题 更多 >