0

我想编写一个在 windows shell 中运行的程序。要运行它,我使用 Enfocus Switch“执行命令”。该程序有两个参数,arg1 是 xml,arg2 是 xsd,XML 模式定义文件。当程序完成时,它应该返回 exitcode 0,因为这是 switch 所期望的。当它失败时退出代码 1。除此之外,我希望它打印我以 JSON 格式(如 Object.

到目前为止我的代码:

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”编译脚本并成功运行。但是当我在 cmd 或 powershell 中启动 validateXML.exe 时,例如“./validateXML.exe c:/user/Documents/XMLvalidation/test.xml c:/user/Documents/XMLvalidation/test.xsd” 会出现一些丢失的文件错误。在此处输入图像描述在此处输入图像描述

4

0 回答 0