如何知道在Python中运行脚本的路径?

我的script.py在脚本的相同目录中创建一个临时文件。

运行时:

python script.py

它只是文件

但运行时不起作用:

python /path/to/script.py

这是因为我在script.py中使用了一个相对路径来存储临时文件,而不是绝对路径。 问题是我不知道它将在哪个路径上运行,所以我需要一种方法来知道这一点。

关于什么?

os.path.abspath(os.path.dirname(__file__))

根据伟大的Dive Into Python:

import sys, os

print 'sys.argv[0] =', sys.argv[0]             1
pathname = os.path.dirname(sys.argv[0])        2
print 'path =', pathname
print 'full path =', os.path.abspath(pathname)

目前的两个答案反映了你的问题含糊不清。

当你运行python /path/to/script.py ,你想要你的临时文件在哪里? 在当前目录( ./tempfile.txt )或/path/to/tempfile.txt

如果是前者,则可以简单地使用相对路径(或者,对于奇怪和神秘的目的,使用os.getcwd获取与@Desintegr建议的当前目录等效的绝对路径)。

如果是后者,您可以像@Jonathan所说的那样,通过sys.argv[0]确切地了解脚本是如何调用的,并且可以使用os.path的函数来操作该路径(当然,您也可以将这些函数应用于os.getcwd如果前一种情况适用,则os.getcwd返回),或者使用os.path.dirname(__file__)等等(后者是必要的,如果您希望后者的行为也在脚本作为模块导入时运行,而不仅仅是在作为模块运行时一个主要脚本)。


您可以使用os.getcwd()方法来了解当前的工作目录。

Return a string representing the current working directory. Availability: Unix, Windows.

您可以使用os.chdir(path)方法更改当前的工作目录。

Change the current working directory to path. Availability: Unix, Windows.

链接地址: http://www.djcxy.com/p/54697.html

上一篇: How to know the path of the running script in Python?

下一篇: Path to current file depends on how I execute the program