#xml #xsd #pyinstaller #python-3.9 #python-xmlschema
#xml #xsd #pyinstaller #python-3,9 #python-xmlschema
Вопрос:
Я хочу написать программу, которая работает в оболочке Windows. Для его запуска я использую переключатель Enfocus «выполнить команду». Программа принимает два аргумента arg1-это xml, а arg2-файл определения XML-схемы xsd. Когда программа завершится, она должна вернуть код выхода 0, как ожидается от коммутатора. Когда это не удается, выйдите из кода 1. Кроме того, я хочу, чтобы он печатал результаты проверки, которые я упаковал в формате JSON, как объект.
Мой код до сих пор:
import xmlschema import sys sysargs = sys.argv path2xml = sysargs[1] path2xsd = sysargs[2] def xsdValidation(path2xml,path2xsd ): my_schema = xmlschema.XMLSchema(path2xsd) validationResult = "" if path2xml[-3:] == "xml" and path2xsd[-3:] == "xsd": try: valid = my_schema.is_valid(path2xml) validationResult = my_schema.validate(path2xml) except Exception as e: validationResult = str(e) sys.stdout.write( {"file":str(path2xml), "valid": valid, "validationResult":validationResult } ) sys.exit(0) xsdValidation(path2xml, path2xsd)
Я компилирую скрипт с помощью «pyinstaller —onefile validateXML.py» и он успешно работает. Но когда я начну validateXML.exe в cmd или powershell, например «./validateXML.exe c:/user/Documents/XMLvalidation/test.xml c:/user/Documents/XMLvalidation/test.xsd» in приводит к некоторым отсутствующим ошибкам в файлах.