如何在Python中获取导入模块的文件名(包括默认值)?

时间:2017-03-28 01:04:07

标签: python python-module

一点上下文:我正在尝试创建一个可以安全地将自身和所有其他所需文件复制到另一个位置的模块。

说我有两个模块。

a.py:

import b
import os
import tkinter

print(str(__file__))
print(str(b.getfile()))

b.py:

def getfile:
    return __file__

然后输出a.py

C:/path/to/code/a.py
C:\path\to\code\b.py

问题:如果有的话,我是如何获得不同导入模块(如“os.py”)或任何没有此getfile()函数的模块的路径? / p>

2 个答案:

答案 0 :(得分:2)

您可以通过

访问
module_name.__file__

,如

import os
module_file_path = os.__file__

正如评论中所指出的,这对于来自翻译核心的sys等内置模块不起作用。

答案 1 :(得分:0)

您可以使用:

import os
print(os.__file__)