本文介绍了在Python开发过程中调用第三方exe脚本时遇到的一个问题:尽管文件存在于指定的目录中,但Python脚本却无法找到它。原因在于Python脚本的工作目录与第三方exe脚本的工作目录不同。为了解决这个问题,作者使用Python的os标准库保存当前工作目录,然后切换到exe文件所在的目录,再启动exe文件。这种方法成功解决了作者的问题,并希望对读者有所帮助。
在Python的软件开发中,我需要调用一个第三方脚本,这个脚本也需要调用同目录下的一个小文件。
手动进入文件夹打开这个封装的第三方exe是可以正常运行的,但是使用python进行脚本调用的时候却报错找不到配置文件。
这个配置文件明明在那却找不到了?是python眼瞎吗?
写Python程序的时候,python.exe在哪,默认的工作目录就在哪。第三方exe调用的是它所在的目录下的文件,python却在默认的工作目录进行搜索,当然找不到。
这就不能怪python眼瞎了,peace and love,理解万岁。
可以使用os标准库对工作目录进行保存,然后使用os.chdir
将工作目录切换到exe文件夹下对第三方exe进行启动。代码就像下面的示例。我启动了D:\PP1\nnp.exe
文件,模拟的操作是进入nnp.exe所在的文件夹下面之后再双击这个exe。
在我的使用场景中已经成功解决问题了,也是我踩的一个坑,希望能帮助到各位!
# 启动.exe 文件
# 保存当前工作目录
original_cwd = os.getcwd()
# 设置目标工作目录
working_directory = r"D:\PP1"
try:
# 切换到目标工作目录
os.chdir(working_directory)
# 启动可执行文件
os.startfile("nnp.exe")
finally:
# 恢复原始工作目录
os.chdir(original_cwd)