如何从另一个python文件中调用一个python文件
示例:
我在C:\Python\a1.py
中有一个文件
现在我正在研究a2.py
,并想从a1.py
呼叫a2.py
。我该如何实现?
两个程序都必须位于同一位置以调用其他程序吗?
答案 0 :(得分:2)
我假设您反对将代码从a1导入到a2,因此您需要子流程模块:
subprocess.run(["python", "a1.py"])
该参数应该是a1.py的路径,可以是相对的或绝对的。
我建议您看一下模块页面https://docs.python.org/3/library/subprocess.html#module-subprocess
尽管,大多数时候将a1导入a2是更好的解决方案。
答案 1 :(得分:0)
在a1.py
中:
import a2
...
a2.some_func()
其中some_func
是您在a2.py
中定义的函数。如果您想更具体一点,甚至可以做
from a2 import some_func
...
some_func()
关于两个文件是否需要位于同一位置:是。如果它们不在同一位置,则需要考虑目录结构(例如,如果import lib.a2
在名为a2.py
的文件中,则为lib
)。
两个文件可能不在同一位置,但是文件必须位于 pythonpath 上。对于新手来说,这有点复杂,在您真正了解该语言之前,我不建议您深入了解它。您需要知道的是,使用pip
安装的所有文件以及python的所有内置模块和库都位于操作系统上的某个文件夹中。您也可以将a2.py
放在该文件夹中,它将起作用。
答案 2 :(得分:0)
如果两个文件都位于同一目录中,如下所示:
U:\work\Python>dir
Volume in drive U is DATA
Volume Serial Number is FACE-76BF
Directory of U:\work\Python
08/01/2018 11:22 AM <DIR> .
08/01/2018 11:22 AM <DIR> ..
08/01/2018 11:29 AM 470 interleave.py
07/13/2018 04:59 PM <DIR> LTT-Analysis
07/31/2018 04:17 PM 30 test1.py
07/31/2018 04:17 PM 37 test2.py
07/31/2018 04:18 PM <DIR> __pycache__
3 File(s) 4,633 bytes
4 Dir(s) 408,614,400,000 bytes free
然后,您只需要将一个导入另一个即可:
test1.py:
def foo():
return "bar"
test2.py:
import test1
print( test1.foo() )
结果:
U:\work\Python>test2.py
bar