python - 包含多个 python 文件的 Python 程序
问题描述
我想写一个python程序,例如main.py,它包含两个或多个python程序(test1.py,test2.py..etc,.),它们被放置在这些程序的其他一些目录中,所有这些程序都有它的自己的带有参数的方法(test1.py,test2.py..etc,.)。我尝试了一些但案例失败,其中包含程序中的参数。有什么简单的方法可以在一个主要的 python 程序中访问多个程序吗?
解决方案
当然。您可以使用import
加载其他 python 文件:
# Use file1.py, file2.py
import file1
from file2 import func2
file1.func1()
func2()
如果您的其他文件是程序,而不仅仅是变量、类和函数,您可以避免执行此程序中的代码,如下所示:
# file1.py(old)
def func1():
...
func1() # Execute func1 when this file is loaded.
# file1.py(new)
def func1():
...
if __name__=='__main__':
func1() # Execute func1 when this file is loaded.
仅当这是加载的第一个文件时,块内的代码if __name__=='__main__'
才会运行。
# Use file1.py, file2.py
import file1
from file2 import func2
file1.func1()
func2()
如果您想将这些文件组织到一个目录中,您必须创建一个“模块”。这只需要您__init__.py
在目录中放置一个空文件:
+ test.py
+ mymodule/
+ file1.py
+ file2.py
# Test.py. Use mymodule/file1.py, mymodule/file2.py
import mymodule.file1
from mymodule.file2 import func2
file1.func1()
func2()
如果 mymodule 在运行时位于当前目录中,这将起作用。(即你跑了python test.py
而不是python a/b/c/test.py
.
推荐阅读
- spring - 在 Spring Boot 应用程序中读取多个实体扫描包
- c# - 使用 Moq 验证在单独的线程/线程池中发生的方法调用
- visual-studio-code - 是否可以更改 VSC 扩展中的终端布局
- mysql - 数据类型已从 Text10 -> Code10 更改,mysql 中的等效类型是什么?
- php - 如果表格不为空,则隐藏按钮
- node.js - 在对所有值进行排序之前呈现页面
- maven - Maven 中的 pom.properties 自定义
- node.js - Node.js 加密生成小写密钥对
- computation-theory - 包含相等 # 的 a 和 b 的语言 CFG
- audio-streaming - pyav:将视频和音频从流式 hls 中保存到单独的文件中