我是Python新手,最近開始編寫一個腳本,該腳本實質上讀取MySQL數據庫,並通過將其上傳到Amazon Glacier來歸檔某些文件。我正在使用亞馬遜提供的boto
模塊以及一些其他模塊。如何在Python中使用/集成第三方模塊
我注意到,在安裝和利用連接到外部服務的這些模塊時,我似乎一遍又一遍地重複相同的模式。首先,我編寫一個包裝模塊,它讀取我的全局配置值,然後定義一個連接函數,然後開始在該模塊中編寫執行各種任務的函數。例如,目前,我的boto
包裝模塊名爲,它包含的功能如getConnection
和glacierUpload
。這裏有一個簡單的例子:
import config,sys,os
import boto,uuid
_awsConfig = config.get()['aws']
def getGlacierConnection():
return boto.connect_glacier(aws_access_key_id=_awsConfig['access_key_id'],
aws_secret_access_key=_awsConfig['secret_access_key'])
def glacierUpload(filePath):
if not os.path.isfile(filePath):
return False
awsConnect = getGlacierConnection()
vault = awsConnect.get_vault(_awsConfig['vault'])
vault.upload_archive(filePath)
return True
我的問題是,我應該寫這些「包裝」模塊?這是消費這些第三方模塊的Pythonic方式嗎?這種方法對我來說很有意義,但是我不知道創建這些接口是否會讓我的代碼變得不便攜或模塊化,或者是否有更好的方法將這些不同的模塊集成到我的主腳本結構中。
對不起,但你的解釋是相當抽象的。你能告訴我們一些代碼來更好地瞭解你在做什麼嗎? –
我添加了一個簡單的例子,我的'boto'包裝模塊 – oliakaoil