我一直在尝试通过 os.system 和 os.popen 捕获此命令的输出,但我没有成功。我想阻止命令在控制台上抛出输出,而是将输出捕获到数据结构或文件中,以进一步检查和处理它。它使用一个简单的工具,称为 xmllint。我试过了
1. p = os.popen('xmllint --noout --relaxng /home/xxxxx_id/folder_xx/xxxx/xxx/rngfile.rng /home/xxxxx_id/folder_xx/xxxx/xxx/xxx/the_xmlfile_that_needstobe_validated.xml')
2. os.system('xmllint --noout --dtdvalid ' + path to the xml + '> xmloutput')
两者似乎都不成功,并在我的控制台上提供输出,而不是将其复制到文件或数据结构中。我需要验证 100 多个 xml,并且应该能够单独检查每个输出。
帮助?
解决方法:
os.system('xmllint --noout --dtdvalid ' + path to the xml + '> xmloutput 2>&1')