Я пытаюсь сравнить текст со всеми экземплярами определенного тега в двух файлах XML. В OCR-модуле я использую вывод xml-файлов со всеми символами ocr в теге <OCRCharacters>...</OCRCharacters>
.Использование diff с красивыми объектами супа
Я использую python 2.7.11 и красивый суп 4 (bs4). С терминала я называю свою программу python двумя именами файлов xml в качестве аргументов.
Я хочу извлечь все строки в теге <OCRCharacters>
для каждого файла, сравнить их по строкам с помощью difflib и написать новый файл с отличиями.
Я использую $ python parse_xml_file.py file1.xml file2.xml
для вызова программы с терминала.
Приведенный ниже код открывает каждый файл и печатает каждую строку в теге <OCRCharacters>
. Как преобразовать объекты, созданные с помощью bs4 в строки, которые я могу использовать с difflib. Для этого я открыт для лучших способов (используя python).
import sys
with open(sys.argv[1], "r") as f1:
xml_doc_1 = f1.read()
with open(sys.argv[2], "r") as f2:
xml_doc_2 = f2.read()
from bs4 import BeautifulSoup
soup1 = BeautifulSoup(xml_doc_1, 'xml')
soup2 = BeautifulSoup(xml_doc_2, 'xml')
print("#####################",sys.argv[1],"#####################")
for tag in soup1.find_all('OCRCharacters'):
print(repr(tag.string))
temp1 = repr(tag.string)
print(temp1)
print("#####################",sys.argv[2],"#####################")
for tag in soup2.find_all('OCRCharacters'):
print(repr(tag.string))
temp2 = repr(tag.string)