Python:我如何获得当前存档的名称?

时间:2013-08-12 16:26:42

标签: python zip egg

有没有办法在Python中获取当前的存档名称?

这样的东西
  

EggArchive.egg

     


      --- SomePythonFile.py

从SomePython.py,无论如何都要获取.egg名称?

1 个答案:

答案 0 :(得分:0)

变量__file__包含当前python文件的路径。所以如果你有一个结构:

.
`- your.egg
   `-your_module.py

your_module.py中你有一个功能:

def func():
    print(__file__)

代码:

import sys
sys.path.append('/path/to/your.egg')
from your_module import func
func()

将打印出来:

/path/to/your.egg/your_module.py

所以基本上你可以操作__file__变量,如果你知道egg文件中你的模块的相对位置,并获得egg的完整路径。

要获取鸡蛋文件中脚本的相对路径,您必须执行此操作:

def rel_to_egg(f):
    my_dir = os.path.dirname(os.path.abspath(f))
    current = my_dir
    while not current.endswith('.egg'):
        current = os.path.dirname(current)
    return os.path.relpath(current, my_dir)

现在让我们说__file__ == '/test/my.egg/some/dir/my_script.py'

>>> print(rel_to_egg(__file__))
'../..'