Python:在Windows上执行复杂命令

时间:2012-08-29 17:18:08

标签: python windows command-line python-fu

我在Windows上运行命令时遇到问题,而在Linux上运行完美。

我给你上下文,但这不是理解我的问题所必需的:我在批处理模式下使用gimp。

我有一个Python脚本callPythonFuScript.py,它调用另一个Python脚本pythonFu.py,它执行python-fu调用。

callPythonFuScript.py中,当我调用pythonFu.py内的函数执行时,我构造命令行。这是命令行:

gimp-console-2.8 -idf --batch-interpreter python-fu-eval -b 'import sys;sys.path=['.']+sys.path;import pythonFu;pythonFu.myFunction("arg1","arg2","arg3") ' -b 'pdb.gimp_quit(1)'

这个命令在Linux上完美运行,但是当我尝试在Windows上运行它时,它不起作用。

错误消息是:

The opening of C:\Users\myRep\sys; failed : no such file or directory
The opening of C:\Users\myRep\sys.path=['.']+sys.path; failed : no such file or directory
The opening of C:\Users\myRep\"arg1","arg2","arg3")' failed no such file or directory

我假设Windows解释字符的方式与Linux不同。它是否正确?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的,在命令提示符看作参数的内容与作为python的文字字符串传递给eval的内容之间存在一个转义问题:

-b 'import sys;sys.path=["."]+sys.path;import pythonFu;pythonFu.myFunction("arg1","arg2","arg3")'

如果仍然存在错误,则可能需要转义双引号:

-b 'import sys;sys.path=[\".\"]+sys.path;import pythonFu;pythonFu.myFunction(\"arg1\",\"arg2\",\"arg3\")'