python与perl的findbin的等价物是什么?

What is the Python equivalent of Perl's FindBin?

本问题已经有最佳答案,请猛点这里访问。

在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__))


您可以尝试以下操作:

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

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


我不经常使用python,所以我不知道是否有findbin这样的包,但是

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

应该工作。


要更新之前的答案,使用python 3.4+,现在可以执行以下操作:

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

这也会给你同样的效果,只是你会得到一个路径对象,它更适合你的工作。