如何Import自定義的Python模塊?
實(shí)際工作中,經(jīng)常要用的功能能不能像導(dǎo)入python模塊一樣,通過import導(dǎo)入呢?答案當(dāng)然是可以的,本文教你如何做,大家一起來學(xué)習(xí)吧!
背景
在實(shí)際的工作過程中,經(jīng)常會(huì)用到一個(gè)功能,如果每次編寫代碼的時(shí)候都進(jìn)行重新編寫或者打開已經(jīng)編寫好的函數(shù)進(jìn)行復(fù)制粘貼,這樣就顯得很麻煩,有沒有什么方法可以像導(dǎo)入python模塊的那樣,直接把要用的函數(shù)以模塊名+方法的形式調(diào)用呢?
答案當(dāng)然是可以的,比如做數(shù)據(jù)分析時(shí)候經(jīng)常要使用的功能是:實(shí)現(xiàn)某一路徑下的所有xlsx的合并,文件如下
直接給出合并的函數(shù),保留數(shù)據(jù)格式篩選的接口,將合并后的數(shù)據(jù)保存在fltered_data文件夾下的data_ok.xlsx文件中
- def concat_excels(pattern):
- import pandas as pd
- import os
- import glob
- if not os.path.exists('filtered_data'):
- os.mkdir('filtered_data')
- file_paths = glob.glob(pattern)
- df = pd.DataFrame()
- for file_path in file_paths:
- df_ = pd.read_excel(file_path)
- df = pd.concat([df,df_])
- df.to_excel('filtered_data/data_ok.xlsx',index = False)
- print('Finished!')
- if __name__ == '__main__':
- concat_excels('*.xlsx')
具體步驟
第一步:首先找到當(dāng)前編輯器(可能會(huì)存在多個(gè)python解析器)對(duì)應(yīng)的第三方庫的安裝路徑,如果不知道具體的位置,可以在使用的編輯器窗口輸入如下代碼,這里以requests庫為例,查看一下第三方庫的文件位置,紅色標(biāo)記的即是
第二步:將上面的函數(shù)所在py文件命名,可以以自己名字的簡稱進(jìn)行命名,即方便導(dǎo)入也方便自己記住。然后將保存好的py文件移動(dòng)到上面的紅色標(biāo)記下,如下圖
第三步:在欲合并的文件夾下創(chuàng)建一個(gè)py文件(比如命名為:合并數(shù)據(jù).py),如下圖
第四步:編輯代碼,直接導(dǎo)入模塊和方法完成文件數(shù)據(jù)的合并,代碼運(yùn)行截圖如下,這樣就是實(shí)現(xiàn)了多文件的合并,括號(hào)中保留了合并數(shù)據(jù)的篩選格式,方便進(jìn)行之后不同格式的Excel文件的合并
from 模塊名 import * 意思是導(dǎo)入該模塊的所有的方法(可以直接調(diào)用函數(shù))
擴(kuò)展
通過這種方式,就可以把我們?cè)谌粘9ぷ髦薪?jīng)常使用的方法(要實(shí)現(xiàn)的功能)都放置在以自己命名的py文件中,使用的時(shí)候直接就可以調(diào)用非常簡單,如果需要添加,就打開這個(gè)py文件,把代碼復(fù)制粘貼進(jìn)去就可以了。
比如在處理圖像時(shí)候,可以直接把圖片的讀取過程中色彩的矯正和圖片的顯示封裝成函數(shù),在使用的時(shí)候一行代碼就可以實(shí)現(xiàn)之前繁雜的程序
使用演示: