什么是Perl的FindBin的Python等价物?

时间:2010-03-29 18:57:10

标签: python perl path

在Perl中,FindBin模块用于定位原始脚本的目录。在Python中获取此目录的规范方法是什么?

我见过的一些选项:

  • os.path.dirname(os.path.realpath(sys.argv[0]))
  • os.path.abspath(os.path.dirname(sys.argv[0]))
  • os.path.abspath(os.path.dirname(__file__))

3 个答案:

答案 0 :(得分:13)

你可以试试这个:

import os
bindir = os.path.abspath(os.path.dirname(__file__))

这将为您提供当前文件目录的绝对路径。

答案 1 :(得分:8)

我不经常使用Python,所以我不知道是否有像FindBin这样的包但是

import os
import sys
bindir = os.path.abspath(os.path.dirname(sys.argv[0]))

应该有用。

答案 2 :(得分:3)

要使用Python 3.4+更新以前的答案,您现在可以:

import pathlib
bindir = pathlib.Path(__file__).resolve().parent

除了你会得到一个更好用的Path对象之外,它会给你相同的东西。