相关疑难解决方法(0)

如何正确确定当前脚本目录?

我想看看在python中确定当前脚本目录的最佳方法是什么?

我发现,由于调用python代码的方法很多,很难找到一个好的解决方案.

这是一些问题:

  • __file__如果脚本执行时未定义exec,execfile
  • __module__ 仅在模块中定义

用例:

  • ./myfile.py
  • python myfile.py
  • ./somedir/myfile.py
  • python somedir/myfile.py
  • execfile('myfile.py') (来自另一个脚本,可以位于另一个目录中,并且可以有另一个当前目录.

我知道没有完美的解决方案,但我正在寻找解决大多数情况的最佳方法.

最常用的方法是os.path.dirname(os.path.abspath(__file__)),如果你从另一个脚本执行脚本,这实际上不起作用exec().

警告

任何使用当前目录的解决方案都将失败,根据调用脚本的方式或者可以在运行的脚本中更改它,可能会有所不同.

python pythonpath dirname

229
推荐指数
8
解决办法
10万
查看次数

如何查找当前进程/可执行文件运行的路径?

我在连接到本地unix服务器盒时运行一些可执行文件.

说,我正在尝试运行可执行文件'abc'.现在服务器可能为'abc'提供了别名.我如何知道这条路径?就像在,如果我调用'abc',它实际上可以从/ opt/corp/xyz/abc运行它.我怎样才能知道我在调用可执行文件的路径?

顺便说一句,我在HP-UX上运行:D

unix path

5
推荐指数
1
解决办法
1万
查看次数

如何找到哪个文件是"启动器"Python

情况:我们知道下面将检查脚本是否已被直接调用.

if __name__ == '__main__':
    print "Called directly"

else:
    print "Imported by other python files"
Run Code Online (Sandbox Code Playgroud)

问题:该else子句只是一个通用子句,只要脚本没有直接调用就会运行.

问题:如果没有直接调用,有没有办法获取导入的文件?

附加信息:下面是我想象代码的示例,只是我不知道要放什么<something>.

if __name__ == '__main__':
    print "Called directly"

elif <something> == "fileA.py":
    print "Called from fileA.py"

elif <something> == "fileB.py":
    print "Called from fileB.py"

else:
    print "Called from other files"
Run Code Online (Sandbox Code Playgroud)

python python-import filereference

5
推荐指数
1
解决办法
145
查看次数

标签 统计

python ×2

dirname ×1

filereference ×1

path ×1

python-import ×1

pythonpath ×1

unix ×1