用python字典键检查一个字符串?

用python字典键检查一个字符串?,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我有一个字符串(ope_sys),我想从一个字典中猜出我使用键的字符串(现在这些键只是示例): ope_sys = linux-2.6.32-312-ec2-x86_64-with-debian-6.0.8 def check_os_family(ope_sys): inventory_family = { "macos": ["macos"], "linux": ["linux", "with"], "windows": ["windows"] }

我有一个字符串(ope_sys),我想从一个字典中猜出我使用键的字符串(现在这些键只是示例):

ope_sys = linux-2.6.32-312-ec2-x86_64-with-debian-6.0.8

def check_os_family(ope_sys):

    inventory_family = {
    "macos": ["macos"],
    "linux": ["linux", "with"],
    "windows": ["windows"]
    }

    for key in inventory_family:
        for i in inventory_family[key]:
            if re.search(i, ope_sys)
                    name = key
    return name
问题是我不知道最后如何完成如果在字典中的列表上循环之后,有没有办法说:

如果所有if均为真,则名称=键

还有没有其他方法可以做到这一点,我愿意改变我所有的代码。
谢谢

不用模式匹配,只需使用Python提供的:
platform.system()
将返回类似“Windows”、“Linux”、“Darwin”(适用于Mac OS)等内容。

不用模式匹配,只需使用Python提供的:
platform.system()
将返回类似“Windows”、“Linux”、“Darwin”(适用于Mac OS)的内容,等等。

只要匹配规则简单明了,正则表达式就是一种很好的方法

请注意,在您的代码中,返回名称时可能会出现错误,因为如果没有匹配的关键字,则可能没有定义名称

重新导入
def检查系统(操作系统):
系统_关键字={
“macos”:[“macos”],
“linux”:[“linux”,“带”],
“窗口”:[“窗口”],
}
对于system,system_keywords.items()中的关键字:
如果全部(在关键字中搜索(kw,ope_sys)kw):
返回系统
一无所获
检查_系统(“linux-2.6.32-312-ec2-x86_64-with-debian-6.0.8”)

只要匹配规则简单明了,正则表达式就是一种很好的方法

请注意,在您的代码中,返回名称时可能会出现错误,因为如果没有匹配的关键字,则可能没有定义名称

重新导入
def检查系统(操作系统):
系统_关键字={
“macos”:[“macos”],
“linux”:[“linux”,“带”],
“窗口”:[“窗口”],
}
对于system,system_keywords.items()中的关键字:
如果全部(在关键字中搜索(kw,ope_sys)kw):
返回系统
一无所获
检查_系统(“linux-2.6.32-312-ec2-x86_64-with-debian-6.0.8”)

您从哪里获取操作系统?您从哪里获取操作系统?实际上,我从platform.platform()获取操作系统,但将来我需要更多详细信息,如debian 6.0或windonws xp。。。因此,只需向我的dictionaryRight添加更多键,就可以使用
platform.release()
来确定版本。仍然不需要模式匹配。我尝试过,但使用release()时只有:2.6.32-312-ec2实际上我从platform.platform()获得了ope_sys,但将来我需要更多细节,比如debian 6.0或windonws xp。。。因此,只需向我的dictionaryRight添加更多键,就可以使用
platform.release()
来确定版本。仍然不需要模式匹配。我尝试过,但使用release()时只有:2.6.32-312-ec2
for key, value in inventory_family.iteritems():
    if all(v in ope_sys for v in value):
        return key