如何在Python中导入文件?我想导入:
文件(例如file.py) 一个文件夹 在运行时根据用户输入动态地生成文件 文件的特定部分(例如,单个函数)
如何在Python中导入文件?我想导入:
文件(例如file.py) 一个文件夹 在运行时根据用户输入动态地生成文件 文件的特定部分(例如,单个函数)
当前回答
我想补充一点,我在其他地方不太清楚;在模块/包中,当从文件中加载时,模块/包名必须以mymodule作为前缀。想象我的模块是这样布局的:
/main.py
/mymodule
/__init__.py
/somefile.py
/otherstuff.py
当从__init__.py加载somefile.py/otherstuff.py时,内容应该如下所示:
from mymodule.somefile import somefunc
from mymodule.otherstuff import otherfunc
其他回答
使用Python 3.5或更高版本时,可以使用importlib。Util可以直接将.py文件作为模块导入任意位置,而不需要修改sys.path。
import importlib.util
import sys
def load_module(file_name, module_name)
spec = importlib.util.spec_from_file_location(module_name, file_name)
module = importlib.util.module_from_spec(spec)
sys.modules[module_name] = module
spec.loader.exec_module(module)
return module
参数file_name必须为字符串或类路径对象。module_name参数是必需的,因为所有加载的Python模块都必须有一个(点)模块名(如sys、importlib或importlib.util),但您可以为这个新模块选择任何可用的名称。
你可以这样使用这个函数:
my_module = load_module("file.py", "mymod")
在使用load_module()函数将该模块导入Python进程一次之后,就可以使用给定的模块名导入该模块。
file.py:
print(f"file.py was imported as {__name__}")
one.py:
print(f"one.py was imported as {__name__}")
load_module("file.py", "mymod")
import two
two.py:
print(f"two.py was imported as {__name__})")
import mymod
对于上面的文件,您可以运行以下命令来查看file.py如何变得可导入。
$ python3 -m one
one.py was imported as __main__
two.py was imported as two
file.py was imported as mymod
这个答案基于官方的Python文档:
将python文件从一个文件夹导入到另一个文件夹的复杂方法并不多。只需要创建一个__init__.py文件来声明这个文件夹是一个python包,然后转到你想要导入的主机文件
从root。parent。folder。file导入变量,类,等等
只是在另一个python文件中导入python文件
假设我有一个help .py python文件,它有一个显示函数,
def display():
print("I'm working sundar gsv")
在app.py中,你可以使用display函数,
import helper
helper.display()
输出,
我正在工作,桑达gsv
注意:不需要指定.py扩展名。
import sys
#print(sys.path)
sys.path.append('../input/tokenization')
import tokenization
要导入任何.py文件,可以使用上面的代码。
首先追加路径,然后导入
注:“. ./input/tokenization'目录中包含tokenization.py文件
有几种方法可以将python脚本包含在abc.py中
例如,如果你的文件名为abc.py(导入abc) 限制是你的文件应该和你调用的python脚本在同一个位置。
进口美国广播公司
例如,如果你的python文件在Windows文件夹中。Windows文件夹与调用python脚本的位置相同。
从文件夹导入ABC
在情况下abc.py脚本是可用的内部internal_folder,是在文件夹内
导入ABC
正如James上面所回答的,如果你的文件在某个固定的位置
进口操作系统 导入系统 scriptpath = "../Test/MyModule.py" sys.path.append (os.path.abspath (scriptpath)) 进口MyModule里
如果你的python脚本更新了,你不想上传-使用这些语句自动刷新。好处:)
%load_ext autoreload
%autoreload 2