Python中等同于Perl的FindBin的是什么?

9 投票
3 回答
3220 浏览
提问于 2025-04-15 21:00

在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 个回答

8

我不太常用Python,所以不知道有没有像FindBin这样的包。不过

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

应该可以用。

13

你可以试试这个:

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

这样做会给你当前文件所在目录的绝对路径。

6

关于之前的回答,使用Python 3.4及以上版本,你现在可以这样做:

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

这样做的结果和之前一样,不过你会得到一个Path对象,这个对象用起来要方便很多。

撰写回答