我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python跨文件调用函数以及在一个文件中执行另一个文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python跨文件调用函数以及在一个文件中执行另一个文件

一、项目简介

假如现在有这样一个文件树(从其他地方copy的,稍加整改)

A
   |-------- __init__.py
   |-------- a.py
   |-------- main.py
   |-------- B
         |-------- __init__.py
         |-------- b.py
   |-------- C
         |-------- __init__.py
         |-------- c.py

文件内容如下:

# a.py
def a_hello():
    print("A_HELLO")
----------------------------
# b.py
def b_hello():
    print("B_HELLO")
----------------------------
# c.py
def c_hello():
    print("C_HELLO")
----------------------------
# main.py
def main_hello():
    print("MAIN_HELLO")

为什么要有__init__.py文件呢?
【答】在Python工程里,当python检测到一个目录下存在__init__.py文件时,python就会把它当成一个模块(module)。Module跟C++的命名空间和Java的Package的概念很像,都是为了科学地组织化工程,管理命名空间。
__init__.py可以是一个空文件,也可以有非常丰富的内容。

二、调用类型

1、调用同文件中的函数

这个比较简单,比如我想在main.py中调用main_hello()函数,那么我直接main_hello()即可

2、调用同目录下不同文件中的函数

比如我想在main.py中调用a.py中的a_hello()函数,可做如下操作

import a
a.a_hello()

3、调用同级文件夹文件中的函数

比如我想在main.py中调用文件夹Bb.py中的b_hello()函数,可做如下操作:

from B import b
b.b_hello()

4、调用上一级文件夹文件中的函数

比如我想在c.py中调用a.py中的函数,这时候如果用上面的方法就会报错No module named xx。解决方法就是将目录A加到系统路径下

import os
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

注意,sys.path添加目录时注意是在windows还是在linux下,windows下需要用\\,linux下需要用/否则会出错。这样需要区分操作系统,而且需要知道绝对路径,岂不是很不好用。看到有大佬用到过如下操作:

import os
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

上面这句话很长,但也不难理解,os.path.dirname(__file__)获取当前文件的绝对路径,os.path.join(xx,'..')在后面追加..,相当于进入上一级目录,然后再os.path.abspath(xx)获取绝对路径,最后sys.path.append()将其加入系统路径当中。经过这些操作之后,被加入系统路径中的所有文件中的函数都可以被调用了。

5、调用上一级文件夹子文件夹下文件中的函数

后面有朋友问了,所以这里再补充一下 2022-09-23
因为原来的项目被我删了,这里我并没有做测试啊,一般我都是这么用的,应该无问题。

比如我想在c.py中调用b.py中的函数,那么c.pyimport

import os
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import B.b as b
b.b_hello()

6、执行另一个文件

import os

os.system(r'python tmp.py') 
# 最好给文件的绝对路径,否则有可能会找不到文件。

三、概念区分

  1. Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和 Python 语句。
  2. Python 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__init__.py 用于标识当前文件夹是一个包。
  3. 文件夹:文件夹就是不存在 __init__.py 文件的文件夹。

另外,对于导入模块可以使用import model1from model1 import func1, func2, ...。其实,这两种方式看似一样,但是是有所区别的,具体请看

https://www.jb51.net/article/269568.htm

总结 

到此这篇关于Python跨文件调用函数以及在一个文件中执行另一个文件的文章就介绍到这了,更多相关Python跨文件调用函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python跨文件调用函数以及在一个文件中执行另一个文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python跨文件调用函数以及在一个文件中执行另一个文件

这篇文章主要给大家介绍了关于Python跨文件调用函数以及在一个文件中执行另一个文件的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友可以参考下
2022-12-09

怎么在bat文件中调用另一个bat文件

小编给大家分享一下怎么在bat文件中调用另一个bat文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!情景一:两个bat文件在同一个目录下有时候我们需要在一个ba
2023-06-29

Python代码中执行另外一个.py文件

关于Python 脚本如何执行另一个脚本,可以使用os.system()来实现 https://blog.csdn.net/shenjin_s/article/details/79976954 简单粗暴的方式。。。import osos.s
2023-01-31

cmd bat文件中怎么调用另一个bat文件

这篇文章主要介绍“cmd bat文件中怎么调用另一个bat文件”,在日常操作中,相信很多人在cmd bat文件中怎么调用另一个bat文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”cmd bat文件中怎么调
2023-06-30

python怎么引用另一个文件的函数

要引用另一个文件的函数,可以按照以下步骤进行操作:1. 创建一个Python文件,其中包含你需要引用的函数。假设文件名为`functions.py`,内容如下:```pythondef add(a, b):return a + bdef s
2023-09-25

python怎么运行另一个py文件

在 python 中运行另一个 python 文件的步骤:导入另一个模块,例如:import my_module调用模块中的函数或方法,例如:my_module.print_hello()使用 exec() 函数,例如:exec(open(
python怎么运行另一个py文件
2024-05-14

python怎么调用另一个文件的变量

要在一个Python文件中调用另一个文件的变量,你可以使用以下几种方法:1. 使用import语句导入整个文件:- 在调用文件的Python脚本中,使用`import`语句导入另一个文件,然后通过`另一个文件名.变量名`的方式访问变量。示例
2023-09-13

python怎么调用另一个py文件的变量

在 python 中,调用另一个 py 文件的变量有三种方法:1. 使用import语句导入模块,然后访问变量;2. 使用from...import语句从模块中导入特定变量;3. 使用exec函数执行代码字符串来导入文件并访问变量。如何在
python怎么调用另一个py文件的变量
2024-05-14

matlab如何调用另一个文件的变量

在MATLAB中,可以使用`load`函数加载另一个文件的变量。具体步骤如下:1. 创建一个.m文件,其中定义了一个或多个变量,例如文件名为`file1.m`,变量名为`var1`和`var2`。```matlabvar1 = 10;var
2023-09-05

是否可以从另一个文件调用测试函数来开始测试

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《是否可以从另一个文件调用测试函数来开始测试》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!问题内容是否可以从非测试 go 文件中
是否可以从另一个文件调用测试函数来开始测试
2024-04-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录