我在另一个驱动器上有一个python脚本:
E:/myscripts/run.py
我从cmd运行这个,如下所示:
python
一旦我进入python解释器,我就这样做:
file = "E:/myscripts/run.py"
exec(open(file).read())
它抛出一个错误";没有这样的文件或目录:config.txt"。这是脚本在里面打开的文件:
open("config.txt")
os.getcwd()
返回C:/Users/me
所以它试图在那里找到配置文件。如何告诉python查找与执行脚本所在位置相关的文件?
我必须特别更改当前目录吗?因为如果我这样做:
os.chdir("E:/myscripts")
然后再次运行我的脚本,它起作用了。但我希望有一些论据来正确运行脚本。
在run.py
脚本中,您可以首先使用操作系统包来确定run.py
脚本的当前路径,从而加载config.txt
。要确定当前运行的脚本的完整路径,可以使用以下命令:
import os
path2runpy = os.path.dirname(__file__)
如果使用print
命令打印变量path2runpy,则应显示以下路径:
E:/myscripts/
然后,您可以连接路径和文件名并加载文件:
open(os.path.join(path2runpy, "config.txt"))
os.getcwd()
将只为您提供当前目录,您将从该目录调用脚本。