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

Eug*_*ash 8 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__))

Chr*_*s R 13

你可以试试这个:

import os
bindir = os.path.abspath(os.path.dirname(__file__))
Run Code Online (Sandbox Code Playgroud)

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


Sin*_*nür 8

我不使用Python很多时候,所以我不知道是否有包像FindBin

import os
import sys
bindir = os.path.abspath(os.path.dirname(sys.argv[0]))
Run Code Online (Sandbox Code Playgroud)

应该管用.


e-s*_*tis 5

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

import pathlib
bindir = pathlib.Path(__file__).resolve().parent
Run Code Online (Sandbox Code Playgroud)

这会给你相同的,除了你会得到一个更适合使用的 Path 对象。