1. 背景
在實際的操作過程中,經常會用到一個功能,如果每次編寫代碼的時候都進行重新編寫或者打開已經編寫好的函數進行復制粘貼,這樣就顯得很麻煩,有沒有什麼方法可以像導入python模塊的那樣,直接把要用的函數以模塊名+方法的形式調用呢?
答案當然是可以的,比如做數據分析時候經常要使用的功能是:實現某一路徑下的所有xlsx的合併,文件如下
直接給出合併的函數,保留數據格式篩選的接口,將合併後的數據保存在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')
2. 具體步驟
第一步:首先找到當前編輯器(可能會存在多個python解析器)對應的第三方庫的安裝路徑,如果不知道具體的位置,可以在使用的編輯器窗口輸入如下代碼,這裏以requests庫爲例,查看一下第三方庫的文件位置,紅色標記的即是
第二步:將上面的函數所在py文件命名,可以以自己名字的簡稱進行命名,即方便導入也方便自己記住。然後將保存好的py文件移動到上面的紅色標記下,如下圖
第三步:在欲合併的文件夾下創建一個py文件(比如命名爲:合併數據.py),如下
第四步:編輯代碼,直接導入模塊和方法完成文件數據的合併,代碼運行截圖如下,這樣就是實現了多文件的合併,括號中保留了合併數據的篩選格式,方便進行之後不同格式的Excel文件的合併
from 模塊名 import *
意思是導入該模塊的所有的方法(可以直接調用函數)
3. 擴展
通過這種方式,就可以把我們在日常工作中經常使用的方法(要實現的功能)都放置在以自己命名的py文件中,使用的時候直接就可以調用非常簡單,如果需要添加,就打開這個py文件,把代碼複製粘貼進去就可以了。
比如在處理圖像時候,可以直接把圖片的讀取過程中色彩的矯正和圖片的顯示封裝成函數,在使用的時候一行代碼就可以實現之前繁雜的程序
使用演示: