如何从python调用批处理文件的相对路径?在
我的python脚本'脚本.py'在目录“d:\2014\python”中\脚本.py"
在这个文件中,我想将一个批处理文件称为“d:\2014\input\batch1.bat”,但我想使用带有popen()
函数的相对路径。在
在脚本.py在
import os, sys
from subprocess import Popen
p = Popen("D:\\2014\\input\\batch1.bat", cwd=r"D:\\2014\\input")
stdout, stderr = p.communicate()
上面的代码可以工作,但是下面的代码将不工作
^{pr2}$给出“找不到文件”错误
Python将从中执行的路径作为当前目录。您可以使用检索当前目录操作系统getcwd(). 在
我在桌面上调用了一个python测试脚本pycwd.py公司公司名称:
从不同的地方调用,会得到不同的结果:
^{2}$您应该使用SiHa建议的解决方案:
Popen中的cwd参数是执行批处理文件的路径(例如,如果只从某个目录调用批处理文件)。 编辑:那么对于您的jarfile:将popen中的cwd设置为jar文件所在的目录。您可以将它作为python文件或批处理文件的相对路径,还是只提供绝对路径?在
从pythondocs:
“如果cwd不是None,则子目录在执行之前将被更改为cwd。请注意,搜索可执行文件时不考虑此目录,因此不能指定程序相对于cwd的路径。”
有人提出了一个非常相似的问题here,请尝试:
相关问题 更多 >
编程相关推荐