如何在 Python 中获取导入模块的文件名(包括默认值)?
How to get filename of imported modules (Including default) in Python?
一点上下文:我正在尝试创建一个可以安全地将自身和所有其他所需文件复制到另一个位置的模块。
假设我有两个模块。
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()
函数?
您可以通过
访问
module_name.__file__
如
import os
module_file_path = os.__file__
正如评论中所指出的,这不适用于某些内置模块,例如来自解释器核心的 sys
。
您可以使用:
import os
print(os.__file__)
一点上下文:我正在尝试创建一个可以安全地将自身和所有其他所需文件复制到另一个位置的模块。
假设我有两个模块。
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()
函数?
您可以通过
访问module_name.__file__
如
import os
module_file_path = os.__file__
正如评论中所指出的,这不适用于某些内置模块,例如来自解释器核心的 sys
。
您可以使用:
import os
print(os.__file__)