use*_*230 412 python import file function
Set_up:我有一个.py文件,用于我需要在程序中使用的每个函数.
在这个程序中,我需要从外部文件调用该函数.
我试过了:
from file.py import function(a,b)
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
ImportError:没有名为'file.py'的模块; 文件不是包
我该如何解决这个问题?
Gam*_*iac 464
file.py导入时无需添加.只需编写from file import function,然后使用调用该函数function(a, b).这可能不起作用的原因是因为它file是Python的核心模块之一,所以我建议你更改文件的名称.
需要注意的是,如果你想从导入函数a.py到一个名为b.py,您需要确保a.py并b.py在同一目录下.
Sal*_*ali 165
首先,你不需要.py.
如果你有一个文件a.py,里面你有一些功能:
def b():
# Something
return 1
def c():
# Something
return 2
Run Code Online (Sandbox Code Playgroud)
并且你想要导入它们z.py你必须写
from a import b, c
Run Code Online (Sandbox Code Playgroud)
Pul*_*sal 45
您可以通过两种方式完成此操作.首先只是从file.py导入你想要的特定功能.要做到这一点
from file import function
Run Code Online (Sandbox Code Playgroud)
另一种方法是导入整个文件
import file as fl
Run Code Online (Sandbox Code Playgroud)
然后你可以调用file.py中的任何函数
fl.function(a,b)
Run Code Online (Sandbox Code Playgroud)
Jua*_*ssa 28
您也可以从不同的目录中调用该函数,以防您不能或不想将该函数放在您正在使用的同一目录中.你可以用两种方式做到这一点(也许有更多的选择,但这些是对我有用的).
备选方案1暂时更改工作目录
import os
os.chdir("**Put here the directory where you have the file with your function**")
from file import function
os.chdir("**Put here the directory where you were working**")
Run Code Online (Sandbox Code Playgroud)
备选2将具有函数的目录添加到sys.path
import sys
sys.path.append("**Put here the directory where you have the file with your function**")
from file import function
Run Code Online (Sandbox Code Playgroud)
小智 25
.py 文件中的函数(当然可以在不同的目录中)可以通过首先写入目录然后不带 .py 扩展名的文件名来简单地导入:
from directory_name.file_name import function_name
Run Code Online (Sandbox Code Playgroud)
后来被使用: function_name()
Ric*_*Boy 19
遇到了相同的功能,但我不得不做下面的工作.
如果您看到'ModuleNotFoundError:No module named',您可能需要在文件名前面的点(.),如下所示;
来自.file import funtion
aba*_*tra 16
如果文件位于不同的包结构中,并且您想从其他包中调用它,则可以按照以下方式调用它:
假设您在python项目中具有以下包结构:
在com.my.func.DifferentFunction-python文件中,您具有一些功能,例如:
def add(arg1, arg2):
return arg1 + arg2
def sub(arg1, arg2) :
return arg1 - arg2
def mul(arg1, arg2) :
return arg1 * arg2
Run Code Online (Sandbox Code Playgroud)
您想从中调用不同的函数Example3.py,然后按照以下方式进行操作:
在Example3.py文件中定义导入语句以导入所有功能
from com.my.func.DifferentFunction import *
Run Code Online (Sandbox Code Playgroud)
或定义要导入的每个函数名称
from com.my.func.DifferentFunction import add, sub, mul
Run Code Online (Sandbox Code Playgroud)
然后Example3.py可以调用函数执行:
num1 = 20
num2 = 10
print("\n add : ", add(num1,num2))
print("\n sub : ", sub(num1,num2))
print("\n mul : ", mul(num1,num2))
Run Code Online (Sandbox Code Playgroud)
输出:
add : 30
sub : 10
mul : 200
Run Code Online (Sandbox Code Playgroud)
小智 12
首先以.py格式保存文件(例如,my_example.py).如果该文件有功能,
def xyz():
--------
--------
def abc():
--------
--------
Run Code Online (Sandbox Code Playgroud)
在调用函数中,您只需键入以下行.
file_name:my_example2.py
============================
import my_example.py
a = my_example.xyz()
b = my_example.abc()
Run Code Online (Sandbox Code Playgroud)
============================
小智 9
将模块重命名为“文件”以外的名称。
然后还要确保在调用函数时:
1)如果要导入整个模块,则在调用它时要重申模块名称:
import module
module.function_name()
Run Code Online (Sandbox Code Playgroud)
要么
import pizza
pizza.pizza_function()
Run Code Online (Sandbox Code Playgroud)
2)或如果要导入特定功能,带别名的功能或所有使用*的功能,则无需重复模块名称:
from pizza import pizza_function
pizza_function()
Run Code Online (Sandbox Code Playgroud)
要么
from pizza import pizza_function as pf
pf()
Run Code Online (Sandbox Code Playgroud)
要么
from pizza import *
pizza_function()
Run Code Online (Sandbox Code Playgroud)
你不必添加file.py.
只需将文件保存在与要导入文件的文件相同的位置即可.然后只需导入您的功能:
from file import a, b
Run Code Online (Sandbox Code Playgroud)
小智 6
在MathMethod.Py内部。
def Add(a,b):
return a+b
def subtract(a,b):
return a-b
Run Code Online (Sandbox Code Playgroud)
内部Main.Py
import MathMethod as MM
print(MM.Add(200,1000))
Run Code Online (Sandbox Code Playgroud)
输出:1200
.如果要导入与运行代码位于同一目录中的文件,请在文件名前附加一个点。
例如,我正在运行一个名为的文件a.py,我想导入一个名为 的方法addFun,该方法是用 编写的b.py,并且b.py在同一目录中
from .b import addFun
Run Code Online (Sandbox Code Playgroud)
解决方案1:在一个文件中myfun.py定义任意函数。
# functions
def Print_Text():
print( 'Thank You')
def Add(a,b):
c=a+b
return c
Run Code Online (Sandbox Code Playgroud)
在另一个文件中:
#Import defined functions
from myfun import *
#Call functions
Print_Text()
c=Add(1,2)
Run Code Online (Sandbox Code Playgroud)
解决方案2:如果上述解决方案不适用于 Colab
myfun__init__.py__init__.pyfrom myfun import *