2017-12-28 14 views
0

Ich versuche, ein Wort aus einer Textdatei zu lesen und zu prüfen, ob dieses Wort in einem xml-Tag existiert, auch wenn die Datei Sonderzeichen enthält. Dieser ist der Code:Python, Überprüfen, ob eine Zeichenfolge in einem XML-Tag existiert

import lxml.objectify 
from lxml import etree 
import codecs 
import xml.etree.cElementTree as ET 
file_path = "C:\Users\HP\Downloads\Morphalou-2.0.xml" 
for event, elem in ET.iterparse(file_path, events=("start", "end")): 
    if elem.tag == 'orthography' and event =='start': 
     data = elem.text 
     f = codecs.open ('test.txt', encoding="ISO-8859-1") 
     for line in f: 
      check = line 
      if check in data: 
       print (check,":", "true") 
       break 
     else: 
       print (check,":", "false") 
       break 
    elem.clear() 

Als ich print (check) tipe, das Wort sieht axactly wie ich es will "garçon", aber wenn ich den Test hinzufügen

 if check in data: 
       print (check,":", "true") 
       break 
     else: 
       print (check,":", "false") 
       break 

Dies ist, was ich bekommen:

(u'gar\xe7on', ':', 'false') 

Dachte das Ergebnis muss wahr sein !! Vermisse etwas, weiß jemand was es ist, bitte Hilfe! Vielen Dank.

+0

Mögliche Duplikat [? Wie kann ich einen Unicode-Typ in eine Zeichenfolge in Python zu vergleichen] (https://stackoverflow.com/questions/16471332/how-can-i-compare -a-Unicode-Typ-zu-String-in-Python) – Joe

Antwort

0

Warum drucken Sie es so?

print (a,b,c) 

Wenn Sie nur die Ausgabe als formatieren möchten: true, bitte versuchen Sie es wie dies zu tun:

print "%s:true" % check 

Da Python denkt, dass Sie ein Tupel zu drucken.

Dies ist die Probe:

+0

Ich habe versucht, aber das kam heraus, wenn ich das Programm ausführen: Es ist ein Fehler in Ihrem Programm: Kann nicht zugeordnet werden: Zeile 11, die ist 'print ("% s: False "% check)' – Ran

Verwandte Themen