精华内容
下载资源
问答
  • 今天跟大家分享下python如何调用其他文件夹下的函数 1、在项目下新建文件夹common,并在该目录下创建get_token.py文件 #!/usr/bin/env python # -*- coding:utf-8 -*- import yaml import os # cur = os.path....

    今天跟大家分享下python如何调用其他文件夹下的函数

    1、在项目下新建文件夹common,并在该目录下创建get_token.py文件
    在这里插入图片描述

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import yaml
    import os
    
    
    # cur = os.path.dirname(os.path.realpath(__file__))
    
    def get_token():
        # 从配置文件中读取token值,并返回
        p = os.path.join(r'D:\autotest\api\628x\Token.yaml')
        f = open(p)
        a = f.read()
        t = yaml.load(a, Loader=yaml.FullLoader)
        f.close()
        return t["token"]
    
    
    if __name__ == "__main__":
        get_token()
    

    2.在其他文件中调用common文件夹下get_token.py文件中的get_token()函数
    在这里插入图片描述from common.get_token import get_token,导入改模块后就可以直接使用get_token()这个函数了

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # 用pip3命令安装
    import requests
    from ruamel import yaml
    import json
    from common.get_token import get_token
    
    
    def test_collectionList():
        host = 'http://47.96.169.xx:8081/'
        url = host + "api/collection/list"
        headers = {'Content-Type': 'application/json', "x-token": get_token()}
        # 初始化url请求对象
        response = requests.get(url=url, headers=headers)
        print(response.json())
    
        assert response.status_code == 200
    
    
    if __name__ == "__main__":
        test_collectionList()
    

    是不是很简单呢,希望对大家有帮助

    展开全文
  • 本篇文章小编给大家分享一下python调用自己的函数代码示例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。在python,除了调用下载的扩展库之外,还可以自定义函数,方便自己。把基础...

    python如何调用自己的函数?本篇文章小编给大家分享一下python调用自己的函数代码示例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

    在python中,除了调用下载的扩展库之外,还可以自定义函数,方便自己。

    把基础模块放在固定文件夹(或相对固定文件夹),使用sys.append(r'自定义的模块路径')

    实例如下:

    1、在E:pycharm新建hello.py实现基础功能函数(定义一个hello()函数)

    5efc4ab081473.png

    2、 调用自定义的函数

    5efc4aaa9c71c.png

    3、 运行结果为:

    5efc4aa5a3706.png

    内容扩展:

    Python中如何调用自己写的函数

    例如我现在写了一个KNN的函数,如下:

    import numpy as np

    def createDataSet():

    group=np.array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])

    labels=['A','A','B','B']

    return group,labels

    在另一个.py文件中想引用的话

    首先import kNN

    引用函数kNN.createDataSet()

    展开全文
  • 由于业务需要跑仿真的时候将所有的测试用例放在不同的文件夹下面跑,所以需要调用不同文件夹下的make file import os from multiprocessing import Process, Queue, Pool import time, datetime #首先判断文件夹...

    由于业务需要跑仿真的时候将所有的测试用例放在不同的文件夹下面跑,所以需要调用不同文件夹下的make file

    import os 
    from multiprocessing import Process, Queue, Pool
    import time, datetime
    
    #首先判断文件夹是否存在,以免覆盖之前的文件夹了
    count =0
    
    for i in range(10):    #只希望最多存留之前编译文件10个
        if os.path.exists("../compile_{0}".format(count)):  #设置创建文件的相对路径
            count += 1   #如果存在则名字加1
        else:
            data = os.system("cp -rf ../run ../compile_{}".format(count)) #调用系统函数创建文件夹
            os.chdir("../compile_{}".format(count))  #修改工作路径,这一行是最重要的
            os.system("make compile_vcs")
            break
            

     

    展开全文
  • 特别是当一个py文件调用另一个py文件定义好的函数或类时,需要根据调用和被调用文件所在目录的不同而采取不同方式。 同时在使用pyinstaller打包为exe时,也要注意参数的使用,此处有坑,搞了一天才弄好,哎 函数...

    在开发稍大规模python程序时,就不能将所有*.py源文件放到一个文件夹里管理了。
    特别是当一个py文件调用另一个py文件中定义好的函数或类时,需要根据调用和被调用文件所在目录的不同而采取不同方式。
    同时在使用pyinstaller打包为exe时,也要注意参数的使用,此处有坑,搞了一天才弄好,哎

    函数print_name和类custom_class在source.py中定义:

    '''
    自定义定义函数和类
    '''
    def print_name(name):
        print('welcome '+ name)
    
    class custom_class():
        def __init__(self, name):
            self.name = name
    
        def show_name(self):
            print('hello '+ self.name)
            
    

    在ui.py中使用上面的的函数和类,可以分为三种典型情况:

    1. source.py 和 ui.py 在同一个文件夹内
    2. source.py 在ui.py所在目录的下级子目录中
    3. source.py 在ui.py分别在两个平级文件夹内

    Case1:source.py 和 ui.py 在同一个文件夹内

    这种情况最简单,也是学习python过程中最常用的目录结构,文件结构如下,项目名称为PROJECT1,新建同名PROJECT1文件夹

    • PROJECT1
      • source.py
      • ui.py

    这种情况可以直接import source,ui.py完整代码如下:

    '''
    ui.py和source.py文件在同一文件夹
    '''
    import source
    
    # 函数引用
    source.print_name("Lily")
    
    # 类的引用
    OBJ = source.custom_class('Mike')
    OBJ.show_name()
    
    

    在路径 PROJECT1 下打开控制台,运行结果为:

    \PROJECT1> python .\ui.py
    welcome Lily
    hello Mike
    

    在路径 PROJECT1 下打开控制台,运行pyinstaller命令打包:

    ...\PROJECT1> pyinstaller ui.py
    143 INFO: PyInstaller: 3.5
    143 INFO: Python: 3.7.0
    144 INFO: Platform: Windows-10-10.0.18362-SP0
    (省略打包过程中输出的信息)
    2757 INFO: Building COLLECT COLLECT-00.toc
    3021 INFO: Building COLLECT COLLECT-00.toc completed successfully.
    

    运行后完成打包,默认在\PROJECT1\dist\ui 路径下可以找到 ui.exe 文件,运行该文件的结果为:

    \PROJECT1\dist\ui> ./ui
    welcome Lily
    hello Mike
    

    实现预期目的

    Case2:source.py 在ui.py所在目录的下级子目录中

    这种情况也很常见,项目名称为PROJECT2,新建同名PROJECT2文件夹,而source.py 在CODE子目录下

    • PROJECT2
      • ui.py
      • CODE
        • source.py

    不修改ui.py,直接运行会报错,找不到 module ‘source’

    \PROJECT2> python .\ui.py                                         Traceback (most recent call last):
      File ".\ui.py", line 5, in <module>
        import source
    ModuleNotFoundError: No module named 'source'
    

    这种情况需要添加路径,修改后的ui.py代码如下:

    '''
    source.py文件在CODE文件夹内
    '''
    import sys
    sys.path.append('./CODE')
    
    import source
    
    # 函数引用
    source.print_name("Lily")
    
    # 类的引用
    OBJ = source.custom_class('Mike')
    OBJ.show_name()
    
    

    程序正常运行

    \PROJECT2> python .\ui.py
    welcome Lily
    hello Mike
    

    添加相对路径

    此处有坑:我平时用vscode开发,“打开文件夹”打开的是 “PROJECT2” 文件夹,即控制台定位在 PROJECT2的路径下,添加路径命令sys.path.append(’./CODE’) 中的路径也要以“PROJECT2” 为基准,而不用考虑 ui.py 和 source.py文件的相对关系。
    如退到“PROJECT2” 的上级路径TEST中运行,则仍然会报错:

    \TEST> python .\PROJECT2\ui.py                                         Traceback (most recent call last):
      File ".\PROJECT2\ui.py", line 7, in <module>
        import source
    ModuleNotFoundError: No module named 'source'
    

    pylint 提示:Unable to import 'source’pylint(import-error)

    因为自学的python,想规范自己的代码,所以安装了pylint用于检查代码,发现在第7行pylint会报错,内容:Unable to import 'source’pylint(import-error)
    在这里插入图片描述可以更改pylint的配置文件关闭这个检查,我是参考:
    https://blog.csdn.net/zj010206/article/details/92806700
    中的写法做的。

    简单总结,找到“pylint.exe”所在路径,我的在“C:\Users\xxx\AppData\Roaming\Python\Python37\Scripts”,打开控制台,运行 pylint --generate-rcfile > .pylintrc,就可以生成.pylintrc文件,之后按链接中方法修改.pylintrc文件

    PS C:\Users\xxx\AppData\Roaming\Python\Python37\Scripts> pylint --generate-rcfile > .pylintrc
    

    将修改后的.pylintrc文件放到PROJECT2路径下,就不会再报Unable to import 'source’pylint(import-error) 的提示了。

    待解决

    但其它提示也被关闭了,比如命名方式,缺少class的描述等。不算是完美的解决方案,后面还有研究一下pylint的设置。

    pyinstaller打包使用 -p 参数

    因为可以正常运行程序,所以按case1中给出的命令直接打包,并显示成功:

    PS ...\PROJECT2> pyinstaller ./ui.py                                    
    218 INFO: PyInstaller: 3.5
    219 INFO: Python: 3.7.0
    224 INFO: Platform: Windows-10-10.0.18362-SP0
    (省略打包过程中输出的信息)
    42134 INFO: Building COLLECT COLLECT-00.toc completed successfully.
    

    把控制台定位到\PROJECT2\dist\ui, 运行ui.exe文件时控制台报错:

    ...\PROJECT2\dist\ui> .\ui.exe
    Traceback (most recent call last):
      File "ui.py", line 7, in <module>
    ModuleNotFoundError: No module named 'source'
    [22424] Failed to execute script ui
    

    此处有坑: 开始以为找不到source 和 pylint 的报错有关,修改.pylintrc后,在代码编辑页面上没有提示后,再生成ui.exe 文件,运行后仍然报错。

    此处真正需要的是为pyinstaller命令使用 -p参数,在打包时将CODE路径添加进去。
    pyinstaller -p .\CODE\ ui.py

    PS ...\PROJECT2> pyinstaller -p .\CODE\ ui.py
    140 INFO: PyInstaller: 3.5
    (省略打包过程中输出的信息)
    48261 INFO: Building COLLECT COLLECT-00.toc completed successfully.
    PS ...\PROJECT2> cd .\dist\ui\                                          PS ...\PROJECT2\dist\ui> .\ui.exe
    welcome Lily
    hello Mike
    

    Case2 小结

    • 在编码时,添加source.py所在路径,注意是以控制台路径为基准
      import sys
      sys.path.append(’./CODE’)
    • 在用pyinstaller打包时,使用 -p参数,添加 CODE文件夹

    Case3:source.py 在ui.py分别在两个平级文件夹内

    文件结构如下,项目名称为PROJECT3,新建同名PROJECT3文件夹

    • PROJECT3
      • CODE
        • source.py
      • UI
        • ui.py

    使用vscode打开PROJECT3,因为在ui.py中增加的路径是以控制台所在路径为基准,所以和Case2 的代码一样:

    '''
    source.py文件在CODE文件夹内
    '''
    import sys
    sys.path.append('./CODE')
    
    import source
    
    # 函数引用
    source.print_name("Lily")
    
    # 类的引用
    OBJ = source.custom_class('Mike')
    OBJ.show_name()
    
    

    正常运行ui.py

    ...\PROJECT3> python .\UI\ui.py
    welcome Lily
    hello Mike
    

    如果将控制台定位到 UI文件夹,运行则会报错,再次验证了之前的发现

    ...\PROJECT3\UI> python .\ui.py
    Traceback (most recent call last):
      File ".\ui.py", line 7, in <module>
        import source
    ModuleNotFoundError: No module named 'source'
    

    pyinstaller 使用 -p参数,添加CODE路径

    和Case2一样,也需要使用-p参数添加CODE所在的路径,注意命令中间的空格,.\CODE\ 是-p的参数,之后的 .\UI\ui.py 是需要打包文件所在位置,具体命令如下:

    \PROJECT3> pyinstaller -p .\CODE\ .\UI\ui.py                      148 INFO: PyInstaller: 3.5
    148 INFO: Python: 3.7.0
    151 INFO: Platform: Windows-10-10.0.18362-SP0
    (省略打包过程中输出的信息)
    33594 INFO: Building COLLECT COLLECT-00.toc completed successfully.
    PS ...\PROJECT3> .\dist\ui\ui.exe
    welcome Lily
    hello Mike
    

    最后

    不同文件路径下的py文件引用,和pylint是否报错无关,和CODE文件夹内是否有 init.py 文件无关。
    开发时只要以控制台作为基准路径,在py文件中添加引用路径,且运行py文件时也在相同的路径下就可以。
    pyinstaller打包要用-p参数,手动添加代码所在的路径

    展开全文
  • 01 在同一个文件夹下,调用函数或者类A.py文件def test():print('this is test func')class A:def test():print('this is a class named A, its func is test() ')B.py文件# way 1from A import testfrom A ...
  • python调用文件夹下的py脚本

    千次阅读 2018-08-09 19:31:40
    python调用某一文件夹下的脚本,以下方式可以解决: 1、以下是文件目录结构。mian.py是入口函数,调用zx下的testmian.py脚本。testmain.py的实现需要导入test1.py。发现运行时报错:  2、文件间引用如下:  ...
  • 目录学习笔记—Python文件夹调用函数的方法以及相对路径变更的问题跨文件夹调用函数文件夹调用函数时相对路径的变更 学习笔记—Python文件夹调用函数的方法以及相对路径变更的问题 跨文件夹调用函数 因为本人...
  • python其他文件夹下调用函数 import sys import os o_path = os.getcwd() sys.path.append(o_path) from 代理池 import ip代理池 两个文件夹在同一根文件夹下 1. o_path = os.getcwd() 获得根文件夹的路径 2. ...
  • python中,除了调用下载的扩展库之外,还可以自定义函数,方便自己。把基础模块放在固定文件夹(或相对固定文件夹),使用sys.append(r'自定义的模块路径')实例如下:1、在E:\pycharm新建hello.py实现基础功能函数...
  • B.py调用A.py的函数或类在同一个文件夹下调用函数:A.py文件:def add(x,y):print('和为:%d'%(x+y))B.py文件:import AA.add(1,2)或from A import addadd(1,2)调用类:A.py文件:class A:def __init__(self,xx,yy):...
  • Python 文件夹间的函数调用 假设文件夹 Folder_A 有文件 file_a,文件夹 Folder_B 有文件 file_b。文件 file_a 有一个函数 test(),如何在 file_b 中调用这个函数呢?首先需要知道的是,Python 解释器会在当前...
  • 在B.py文件中调用A.py的add函数如下: import A A.add(1,2) 或 from A import add add(1,2) 2.调用类 A.py文件如下: class A: def __init__(self,xx,yy): self.x=xx self.y=yy def add(self): ...
  • python 调用自定义的模块函数

    万次阅读 2017-10-08 20:35:59
    有一些自己定义的基础模块函数,在很多任务会重复使用,例如读取列表,保存结果等,每次复制相同的代码到一个.py文件进行调用太过麻烦,把基础模块放在固定文件夹(或相对固定文件夹),使用sys.append(r'自定义...
  • @python调用自己写的函数(入门) python调用自己写的函数(入门) 入手Python一个月了才发现写程序还是一个程序写完所有的功能,想要写几个函数包,在每个程序里都可以调用这些程序。 我的函数 编写函数包 先做了...
  • 最近一个工程要调用一个matlab的大函数,实在是不想重新写,就简单的用python调用了matlab。版本匹配我用的环境是Python 3.6.6 matlab 2018b,python的版本和matlab的版本必须匹配,在matlab 2018b支持的python...
  • B.py调用A.py的函数或类 在同一个文件夹调用函数: A.py文件: def add(x,y): print('和为:%d'%(x+y)) B.py文件: import A A.add(1,2) 或 from A import add add(1,2) 调用类: A.py文件: class A: ...
  • 01 在同一个文件夹下,调用函数或者类 A.py文件 def test(): print('this is test func') class A: def test(): print('this is a class named A, its func is test() ') B.py文件 # way 1 from A import ...
  • python中,除了调用下载的扩展库之外,还可以自定义函数,方便自己。 把基础模块放在固定文件夹(或相对固定文件夹),使用sys.append(r’自定义的模块路径’) 实例如下: 1、在E:\pycharm新建hello.py实现基础...
  • 项目信号处理和提取部分用到了matlab,...具体方法如下:1.python中安装mlab安装命令:python setup.py installMlab is a high-level python to Matlab bridge that lets Matlab look like a normal python library....
  • python中调用自定义的函数

    千次阅读 2019-09-21 19:10:57
    python中内置了很多功能强的函数,能够满足很多时候的开发工作,但有些时候需要自己定义一些函数,来供在其他的地方调用,有些时候需要调用第三方库里面的很多函数,就需要先import第三方库,然后调用里面的方法即可...
  • 1. __name__被调用模块.__name为被调用模块的模块名,若为直接执行函数,__name__ = 该'__main__'。运用最广泛的语句为:if __name__ == 'main':这段语句的目的为使得该py文件既可以自我执行又可以被调用。eg.pydef ...
  • 实现步骤: 首先导入系统库 将文件所在路径增加到系统搜索目录 例子如下图所示:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,436
精华内容 24,974
关键字:

python调用其他文件夹中的函数

python 订阅