2015-10-16 5 views
0

Je me sers de Beyond Compare 3 pour voir la différence entre deux fichiers XML. Je suis prêt à créer un petit script python qui, lors de l'exécution, ouvrira les fichiers prêts à être comparés dans l'outil Beyond Compare.ne peut pas ouvrir les fichiers au-delà de comparer en utilisant python

Jusqu'à présent, j'essayé d'invoquer BC3 de la syntaxe de ligne de commande ci-dessous et il fonctionne:

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

mais lorsque je tente d'exécuter même syntaxe de script python comme illustré ci-dessous, il jette l'erreur

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

L'erreur qui est montré est:

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 

am Je manque quelque chose? J'ai essayé différentes solutions pour ouvrir les instructions en ligne de commande en utilisant le tutoriel this et beaucoup d'autres mais cela ne fonctionne pas.

Répondre

1

Faites quelque chose comme ceci. Donnez chemin absolu du .exe

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

Je suis en mesure d'ouvrir le Beyond Compare en utilisant le code suivant:

from subprocess import check_output 

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

où chemin BCompare.exe est ajouté dans la variable de chemin et Test1.txt Test2.txt sont présent dans le même répertoire d'où j'ai exécuté le programme.

+0

Non, malheureusement, il produit la même erreur J'ai donné le chemin absolu de 'BCompare.exe' – Dhruvify

+0

Cependant, avec' subprocess.call ('' C: \ Utilisateurs \ BHD4ABT \ Desktop \ Beyond Compare 3 \ BCompare.exe ') 'Je suis capable d'ouvrir au-delà de l'outil de comparaison, mais je ne peux pas ajouter des fichiers à comparer – Dhruvify

+0

J'ai modifié la réponse ci-dessus. Vérifiez cela s'il vous plaît. – BigBang

0

utilisez le chemin exact où la comparaison est installée ou ajoutez-la à votre variable d'environnement "Chemin". dans le cas en utilisant le chemin exact de l'installation mettre quelque chose ligne "\" C: \ Program Files \ Beyond Comparer 4 \ BCompare.exe \ "test1.txt test2.txt" le \ "permet de lire les caractères spéciaux et les espaces supplémentaires dans