0

我正在使用 Beyond Compare 3 来查看两个 XML 文件之间的区别。我愿意制作一个小的 python 脚本,它在执行时将打开准备在 Beyond Compare 工具中比较的文件。

到目前为止,我尝试从命令行语法调用 BC3,如下所示:

BCompare.exe "c:\Ref-2.xml"  "c:\Cop-2.xml"

但是当我尝试从 python 脚本执行相同的语法时,如下所示,它会抛出错误

from subprocess import check_output
check_output('BCompare.exe "c:\Ref-2.xml"  "c:\Cop-2.xml"', shell=True)

显示的错误是:

raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'BCompare.exe "c:\Ref-2.xml"  "c:\Cop-2.xml"' returned non-zero exit status 1

我错过了什么吗?我使用本教程和许多其他方法尝试了不同的解决方案来打开命令行指令,但它不起作用。

4

3 回答 3

1

做这样的事情。给出.exe的绝对路径

check_output(absolute_path_of_beyond_compare "c:\Ref-2.xml"  "c:\Cop-2.xml"', shell=True)

我可以使用以下代码打开 Beyond Compare:

from subprocess import check_output

check_output("BCompare.exe Test1.txt Test2.txt", shell=True)

其中 BCompare.exe 路径添加到路径变量中,Test1.txt Test2.txt 存在于我执行程序的同一目录中。

于 2015-10-16T14:09:42.253 回答
1
import subprocess
subprocess.Popen([r"C:\Program Files\Beyond Compare 4\BCompare.exe", r"FullFilePath_File1", r"FullFilePath_File2"])

我测试了我的,它的工作原理。我使用的是 Popen,而不是结帐。我通过安装使用 Jupyter 笔记本Anaconda3-5.2.0-Windows-x86_64

Python版本=3.6.5

于 2020-08-21T16:00:50.313 回答
0

使用安装超越比较的确切路径或将其添加到您的环境变量“路径”。如果使用确切的安装路径,请在 "\"C:\Program Files\Beyond Compare 4\BCompare.exe\" test1.txt test2.txt" 中放置一些内容,\" 可以读取路径中的特殊字符和额外空格

于 2017-05-12T06:08:44.010 回答