Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的字符串变量比较_Python_String - Fatal编程技术网

python中的字符串变量比较

python中的字符串变量比较,python,string,Python,String,我有两个来自xml文件的变量 编辑:*对不起。我粘贴了错误的值* x=“00 25 9E B8 B9 19” y=“F000 00 25 9E B8 B9 19” 当我使用if x in y:语句时,不会发生任何事情 但是如果我在y中使用如果“00259eb8b919:我会得到结果 有什么想法吗 我正在添加我的完整代码 import xml.etree.ElementTree as ET tree =ET.parse('c:/sw_xml_test_4a.xml') root=tree.ge

我有两个来自xml文件的变量

编辑:*对不起。我粘贴了错误的值* x=“00 25 9E B8 B9 19” y=“F000 00 25 9E B8 B9 19”

当我使用
if x in y:
语句时,不会发生任何事情

但是如果我在y中使用
如果“00259eb8b919:
我会得到结果

有什么想法吗


我正在添加我的完整代码

import xml.etree.ElementTree as ET

tree =ET.parse('c:/sw_xml_test_4a.xml')
root=tree.getroot()

for sw in root.findall('switch'):



    for switch in root.findall('switch'):

        if sw[6].text.rstrip() in switch.find('GE01').text:
            print switch[0].text

        if sw[6].text.strip() in switch.find('GE02').text.strip():
            print switch[0].text

        if sw[6].text.strip() in switch.find('GE03').text.strip():
            print switch[0].text

        if sw[6].text.strip() in switch.find('GE04').text.strip():
            print switch[0].text    

xml文件细节

- <switch>
  <ci_adi>"aaa_bbb_ccc"</ci_adi> 
  <ip_adress>10.10.10.10</ip_adress> 
  <GE01>"F0 00 00 25 9E 2C BC 98 "</GE01> 
  <GE02>"80 00 80 FB 06 C6 A1 2B "</GE02> 
  <GE03>"F0 00 00 25 9E B8 BB AA "</GE03> 
  <GE04>"F0 00 00 25 9E B8 BB AA "</GE04> 
  <bridge_id>"00 25 9E B8 BB AA "</bridge_id> 
  </switch>
-
“aaa_bbb_ccc”
10.10.10.10 
“F000 00 25 9E 2C BC 98”
“80 00 80 FB 06 C6 A1 2B”
“F000 00 25 9E B8 BB AA”
“F000 00 25 9E B8 BB AA”
“00 25 9E B8 BB AA”
你到底是如何得到结果的

让我解释一下中的
正在检查什么

中的
正在检查
x
的整个值是否包含在
y
值内的任何位置。正如您所看到的,
x
的整个值没有完整地包含在
y

但是,
x
的某些元素是,可能您要做的是:

>>> x = ["00", "25", "9E", "2C", "BC", "8B"]
>>> y = "F0 00 00 25 9E B8 B9 19"
>>> for item in x:
    if item in y:
        print item + " is in " + y


00 is in F0 00 00 25 9E B8 B9 19
25 is in F0 00 00 25 9E B8 B9 19
9E is in F0 00 00 25 9E B8 B9 19

集合成员资格测试中的和未测试中的运算符。如果x是集合s的成员,则s中的x计算为true,否则为false。对于字符串,如果整个字符串x是y的子字符串,则转换为返回True,否则返回False。

除了您问题中的值混淆之外,这似乎按照您想要的方式工作:

sxml="""\
<switch>
  <ci_adi>"aaa_bbb_ccc"</ci_adi> 
  <ip_adress>10.10.10.10</ip_adress> 
  <GE01>"F0 00 00 25 9E 2C BC 98 "</GE01> 
  <GE02>"80 00 80 FB 06 C6 A1 2B "</GE02> 
  <GE03>"F0 00 00 25 9E B8 BB AA "</GE03> 
  <GE04>"F0 00 00 25 9E B8 BB AA "</GE04> 
  <bridge_id>"00 25 9E B8 BB AA "</bridge_id> 
</switch>"""

tree=et.fromstring(sxml)
x="80 00 80 FB 06 C6 A1 2B"    # Note: I used a value of x I could see in the data; 
                               # your value of  x="00 25 9E B8 B9 19 " is not present...

for el in tree:
    print '{}: {}'.format(el.tag, el.text)
    if x in el.text:
        print 'I found "{}" by gosh at {}!!!\n'.format(x,el.tag)
sxml=”“”\
“aaa_bbb_ccc”
10.10.10.10 
“F000 00 25 9E 2C BC 98”
“80 00 80 FB 06 C6 A1 2B”
“F000 00 25 9E B8 BB AA”
“F000 00 25 9E B8 BB AA”
“00 25 9E B8 BB AA”
"""
tree=et.fromstring(sxml)
x=“80 00 80 FB 06 C6 A1 2B”#注意:我使用了数据中可以看到的x值;
#您的x=“00 25 9E B8 B9 19”值不存在。。。
对于树中的el:
打印“{}:{}”。格式(el.tag,el.text)
如果el.text中有x:
打印‘我在{}找到了{}’\n.格式(x,el.标记)

。。。但他们有不同的价值观。你为什么认为这是真的?
x
不在
y
中。你能把你所有的密码都贴出来吗?我不相信你。x不在y中,该字符串也不在y中。正如您看到的,“F000 00 25 9E B8 B9 19”中有“00 25 9E 2C BC 8B”您确定您发布的
x
y
的值正确吗?我编辑了我的问题,粘贴了错误的x值。但是,当我手动创建x和y值时,其效果很好。问题是当使用xml文件中的x和y数据时,正如您在我的完整代码中看到的那样
sxml="""\
<switch>
  <ci_adi>"aaa_bbb_ccc"</ci_adi> 
  <ip_adress>10.10.10.10</ip_adress> 
  <GE01>"F0 00 00 25 9E 2C BC 98 "</GE01> 
  <GE02>"80 00 80 FB 06 C6 A1 2B "</GE02> 
  <GE03>"F0 00 00 25 9E B8 BB AA "</GE03> 
  <GE04>"F0 00 00 25 9E B8 BB AA "</GE04> 
  <bridge_id>"00 25 9E B8 BB AA "</bridge_id> 
</switch>"""

tree=et.fromstring(sxml)
x="80 00 80 FB 06 C6 A1 2B"    # Note: I used a value of x I could see in the data; 
                               # your value of  x="00 25 9E B8 B9 19 " is not present...

for el in tree:
    print '{}: {}'.format(el.tag, el.text)
    if x in el.text:
        print 'I found "{}" by gosh at {}!!!\n'.format(x,el.tag)