如何Import自定义的Python模块?

开发 后端
实际工作中,经常要用的功能能不能像导入python模块一样,通过import导入呢?答案当然是可以的,本文教你如何做,大家一起来学习吧!

实际工作中,经常要用的功能能不能像导入python模块一样,通过import导入呢?答案当然是可以的,本文教你如何做,大家一起来学习吧!

背景

在实际的工作过程中,经常会用到一个功能,如果每次编写代码的时候都进行重新编写或者打开已经编写好的函数进行复制粘贴,这样就显得很麻烦,有没有什么方法可以像导入python模块的那样,直接把要用的函数以模块名+方法的形式调用呢?

答案当然是可以的,比如做数据分析时候经常要使用的功能是:实现某一路径下的所有xlsx的合并,文件如下

直接给出合并的函数,保留数据格式筛选的接口,将合并后的数据保存在fltered_data文件夹下的data_ok.xlsx文件中 

  1. def concat_excels(pattern):  
  2.   import pandas as pd  
  3.   import os  
  4.   import glob  
  5.   if not os.path.exists('filtered_data'):  
  6.       os.mkdir('filtered_data')  
  7.   file_paths = glob.glob(pattern)  
  8.   df = pd.DataFrame()  
  9.   for file_path in file_paths:  
  10.       df_ = pd.read_excel(file_path)  
  11.       df = pd.concat([df,df_])  
  12.   df.to_excel('filtered_data/data_ok.xlsx',index = False 
  13.   print('Finished!')  
  14. if __name__ == '__main__':  
  15.   concat_excels('*.xlsx') 

具体步骤

第一步:首先找到当前编辑器(可能会存在多个python解析器)对应的第三方库的安装路径,如果不知道具体的位置,可以在使用的编辑器窗口输入如下代码,这里以requests库为例,查看一下第三方库的文件位置,红色标记的即是

第二步:将上面的函数所在py文件命名,可以以自己名字的简称进行命名,即方便导入也方便自己记住。然后将保存好的py文件移动到上面的红色标记下,如下图

第三步:在欲合并的文件夹下创建一个py文件(比如命名为:合并数据.py),如下图

第四步:编辑代码,直接导入模块和方法完成文件数据的合并,代码运行截图如下,这样就是实现了多文件的合并,括号中保留了合并数据的筛选格式,方便进行之后不同格式的Excel文件的合并

from 模块名 import * 意思是导入该模块的所有的方法(可以直接调用函数)

扩展

通过这种方式,就可以把我们在日常工作中经常使用的方法(要实现的功能)都放置在以自己命名的py文件中,使用的时候直接就可以调用非常简单,如果需要添加,就打开这个py文件,把代码复制粘贴进去就可以了。

比如在处理图像时候,可以直接把图片的读取过程中色彩的矫正和图片的显示封装成函数,在使用的时候一行代码就可以实现之前繁杂的程序

使用演示:

 

 

责任编辑:庞桂玉 来源: 马哥Linux运维
相关推荐

2024-01-01 13:27:44

pydoc工具代码

2012-05-18 10:52:20

TitaniumAndroid模块自定义View模块

2009-12-17 15:42:25

Rails自定义Hel

2013-06-27 11:10:01

iOS开发自定义UISlider

2010-02-07 14:02:16

Android 界面

2010-02-12 09:32:51

Windows 7修改登录画面

2022-01-14 09:17:13

PythonAPISIX插件

2017-06-20 12:48:55

React Nativ自定义模块Note.js

2020-10-20 09:27:48

Python开发数据类型

2009-09-07 22:00:15

LINQ自定义

2022-04-14 06:20:25

GNOME桌面应用

2015-09-24 10:40:12

自定义Live CDUbuntu

2015-02-12 15:33:43

微信SDK

2016-11-16 21:55:55

源码分析自定义view androi

2011-06-23 10:49:13

Qt 自定义信号

2015-01-14 15:06:48

定义相机

2010-10-25 16:05:07

oracle自定义函数

2022-06-06 09:01:16

SwiftUI自定义导航

2010-08-03 16:13:01

FlexBuilder

2021-05-29 16:12:00

通信协议设备
点赞
收藏

51CTO技术栈公众号