命令行启动程序的问题
最近开发PM遇到一个需求,需要通过命令行打开第三方程序,因为某些缘故,这里我称呼它为w。
然而,一开始我想的挺简单,直接一句subproces.Popen('C:\software\w.exe')代码运行,结果离谱的是无论怎么运行,这个软件就是无法读取我预设的配置文件。更加离谱的是,经过多次测试发现只有通过双击运行就没有问题,一旦用命令行方式运行就是无法读取,包括使用os.system()、start命令等
就在不知所措的时候,开发成员无意间发现这个现象:如果是在桌面上运行start命令,而如果配置文件也在桌面上,就能读取了,反而与程序在一起的配置文件读取不到。发现这个现象后,就编写了下面的一段代码:
我不由得猜测这个w程序在设计的时候是不是就有问题?难道它就不能自己判断一下自己哪一个目录,然后读取该目录的配置文件么?
-
还有一种方案,就是在
subproces.Popen()加入一个参数cwd,然后写上程序的工作目录就可以了 ↩