如何从Python [3.3]内部查找正在运行的Python脚本的目录?我尝试了如何找到脚本目录?中建议的方法,但我得到了“无效语法”并被引导到“os”(我确实导入了os)。
我最接近答案的方法是: sys.argv[0]
,但它仍然包括文件名,所以我不能使用它。还有其他方法吗?
建议的代码所在的部分为rundir = sys.argv[0]
:
import os, sys
rundir = sys.argv[0]
print("Running from" + rundir)
如何从Python [3.3]内部查找正在运行的Python脚本的目录?我尝试了如何找到脚本目录?中建议的方法,但我得到了“无效语法”并被引导到“os”(我确实导入了os)。
我最接近答案的方法是: sys.argv[0]
,但它仍然包括文件名,所以我不能使用它。还有其他方法吗?
建议的代码所在的部分为rundir = sys.argv[0]
:
import os, sys
rundir = sys.argv[0]
print("Running from" + rundir)
获取包含当前正在运行模块的目录:
import os
path = os.path.dirname(os.path.realpath(__file__))
或者,如果你想要获得调用脚本的目录:
import os
path = os.getcwd()
根据文档:
__file__
是加载模块的文件的路径名,如果它是从文件加载的。
根据脚本调用方式的不同,这可能是一个相对于os.getcwd()
的路径,因此os.path.realpath(__file__)
将把此转换为绝对路径(或者如果__file__
已经是绝对路径则不执行任何操作)。然后,os.path.dirname()
通过剥离文件名来返回完整目录。
Path(__file__).resolve().parent
获取一个 Path
对象。 - Tylerimport os,sys
print(os.path.dirname(os.path.realpath(sys.argv[0])))
试试这个:
import os
os.path.dirname(__file__)
__file__
获取当前文件的名称。 dirname
函数获取当前文件所在的目录。
语法错误可能与print语句有关。在Python 3.x中,print语句的语法已更改。
print "hi"
是无效的。现在 print 是一个函数。
print("hi")
works. 你需要括号。