无法使用python打开超出比较的文件

时间:2015-10-16 13:41:21

标签: python beyondcompare3

我正在使用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
我错过了什么吗?我尝试了不同的解决方案,使用this教程和许多其他人打开命令行指令,但它不起作用。

3 个答案:

答案 0 :(得分: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存在于我执行程序的同一目录中。

答案 1 :(得分:1)

import subprocess
subprocess.Popen([r"C:\Program Files\Beyond Compare 4\BCompare.exe", r"FullFilePath_File1", r"FullFilePath_File2"])

我在我的产品上进行了测试,并且有效。 我没有使用Checkout,而是使用Popen。 我正在通过安装Anaconda3-5.2.0-Windows-x86_64

使用Jupyter笔记本

Python版本= 3.6.5

答案 2 :(得分:0)

使用安装了超比较的精确路径,或将其添加到环境变量“Path”。 如果使用确切的安装路径,请放置“\”C:\ Program Files \ Beyond Compare 4 \ BCompare.exe \“test1.txt test2.txt” \“能够读取路径中的特殊字符和额外空格