我正在尝试从python子进程启动一个可执行文件,但我遇到了路径问题。 我正在尝试运行位于
中的newman.cmdC:\Users\<myself>\AppData\Roaming\npm
我试试
subprocess.run("C:\Users\<myself>AppData\Roaming\npm\newman.cmd run","shell=True")
失败,表示:
Syntax Error: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape: C:\knxnet\test_differentiel.py, line 71, pos 23
subprocess.run("C:\Users\<myself>\AppData\Roaming\npm\newman.cmd run","shell=True")
如果我在本地路径中复制newman.cmd和相应的文件夹,我最终会按预期启动命令,即。这有效:
subprocess.run("newman.cmd -h")
我检查了路径,它给了我以下内容:
ENV = <irrelevant info> ;C:\Users\<myself>\AppData\Roaming\npm
所以我虽然会找到它?如何避免在当前目录中复制可执行文件?
感谢您的帮助...
答案 0 :(得分:0)
嗯,我找到了答案,感谢SO ... "Unicode Error "unicodeescape" codec can't decode bytes... Cannot open text files in Python 3
它被解释为unicode后跟一个不需要的字符......错误中指示的位置是引用的位置,所以我没有抓住提示。 所以我试着用r:
subprocess.run(r"C:\Users\a.joly\AppData\Roaming\npm\newman.cmd -h")
它有效。如果我将“\”加倍,它也有效。
谢谢你的时间......