Python辦公自動(dòng)化SFTP詳解
前言
提示:這里可以添加本文要記錄的大概內(nèi)容:
公司里B2B是通過(guò)WinSCP里SFTP與客戶(hù)進(jìn)行數(shù)據(jù)傳輸,WinSCP是一個(gè)Windows環(huán)境下使用SSH的開(kāi)源圖形化SFTP客戶(hù)端,本想偷個(gè)懶拿同事的WinSCP的SFTP代碼給總部傳數(shù)據(jù),同事給的代碼調(diào)用WinSCP就是執(zhí)行不成功,不知道WinSCP是否有新舊版本兼容,還是必須兩邊的操作系統(tǒng)都需要是Windows環(huán)境呢,最后只能硬著頭皮查資料重新寫(xiě)了一個(gè)。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、sftp和ftp的區(qū)別是什么?
sftp和ftp的區(qū)別在安全通道,使用的協(xié)議,鏈接方式,安全性等方面都有不同.
- 1、sftp是一種安全的文件傳輸協(xié)議,一種通過(guò)網(wǎng)絡(luò)傳輸文件的安全方法。它確保使用私有和安全的數(shù)據(jù)流來(lái)安全地傳輸數(shù)據(jù)。
- 2、ftp是文件傳輸協(xié)議。ftp 不提供任何安全通道來(lái)在主機(jī)之間傳輸文件。在網(wǎng)站上,如果你想把文件和人共享,最便捷的方式莫過(guò)于把文件上傳到ftp服務(wù)器上,其他人通過(guò)FTP客戶(hù)端程序來(lái)下載所需要的文件。
sftp和ftp不同的具體表現(xiàn):
ftp不提供任何安全通道來(lái)在主機(jī)之間傳輸文件;而sftp協(xié)議提供了一個(gè)安全通道,用于在網(wǎng)絡(luò)上的主機(jī)之間傳輸文件。ftp使用TCP / IP協(xié)議。而,sftp是SSH協(xié)議的一部分,它是一種遠(yuǎn)程登錄信息。ftp使用TCP端口21上的控制連接建立連接。而,sftp是在客戶(hù)端和服務(wù)器之間通過(guò)SSH協(xié)議(TCP端口22)建立的安全連接來(lái)傳輸文件。ftp密碼和數(shù)據(jù)以純文本格式發(fā)送,大多數(shù)情況下是不加密的,安全性不高。而,sftp會(huì)在發(fā)送之前加密數(shù)據(jù),二進(jìn)制的形式傳遞,是無(wú)法“按原樣”閱讀的,安全性較高。
具體請(qǐng)去網(wǎng)上查看
二、使用步驟
1.程序結(jié)構(gòu)
2.配置文件
config.yaml代碼如下(示例):
CONFIG: &config # 日志配置文件路徑 LOGGING_CONFIG_PATH: ./Configs/logging.yaml # 日志文件存放位置 LOGGING_PATH: ./logs # SFTP FTP_HOST: ***.*****.com FTP_PORT: 22 FTP_USER_NAME : XXXXXXXXX FTP_PASSWORD : XXXXXXXXX HOME_DIR : / REMOTE_PATH : /XXX/ LOCAL_DIR : D:\Web\HR LOCAL_DESDIR : D:\Web\HR\TMP # 郵件 SMTP_SERVER : CNMAIL SMTP_USER_NAME : XXX@163.com SMTP_USER_PWD : XXX FROM_MAIL : isadmin@XXX.com TO_MAIL : XXX.zhang@XXX.com CC_MAIL : XXX.zhang@XXX.com DEVELOPMENT : &development <<: *config # 繼承config,沒(méi)有重新定義的變量,使用config變量值 DEBUG: True PRODUCTION : &production <<: *config # 繼承config,沒(méi)有重新定義的變量,使用config變量值 DEBUG: True
3.讀入配置文件
代碼如下(示例):
def create_app(config_name=None, config_path=None): app = Flask(__name__) # 讀取配置文件 if not config_path: pwd = os.getcwd() config_path = os.path.join(pwd, 'Configs/config.yaml') if not config_name: config_name = 'PRODUCTION' conf = read_yaml(config_name, config_path) app.config.update(conf) if not os.path.exists(app.config['LOGGING_PATH']): # 日志文件目錄 os.mkdir(app.config['LOGGING_PATH']) # 日志設(shè)置 with open(app.config['LOGGING_CONFIG_PATH'], 'r', encoding='utf-8') as f: dict_conf = yaml.safe_load(f.read()) logging.config.dictConfig(dict_conf) # 載入日志配置 return app
4.sftp_client.py
5.email_client.py
6.main.py
代碼如下(示例):
if __name__ == "__main__": remotePath = "" localPath = "" runSFTP(remotePath, localPath)
總結(jié)
到此這篇關(guān)于Python辦公自動(dòng)化SFTP詳解的文章就介紹到這了,更多相關(guān)Python SFTP內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python辦公自動(dòng)化從Excel中計(jì)算整理數(shù)據(jù)并寫(xiě)入Word
- Python辦公自動(dòng)化Word轉(zhuǎn)Excel文件批量處理
- Python辦公自動(dòng)化批量處理文件實(shí)現(xiàn)示例
- Python自動(dòng)化辦公之手機(jī)號(hào)提取
- Python自動(dòng)化辦公之Word文件內(nèi)容的讀取
- Python使用sftp實(shí)現(xiàn)傳文件夾和文件
- Python使用sftp實(shí)現(xiàn)上傳和下載功能
- python實(shí)現(xiàn)自動(dòng)下載sftp文件
- 基于python實(shí)現(xiàn)FTP文件上傳與下載操作(ftp&sftp協(xié)議)
- python paramiko利用sftp上傳目錄到遠(yuǎn)程的實(shí)例
相關(guān)文章
使用Python實(shí)現(xiàn)毫秒級(jí)搶單功能
年中購(gòu)物618大狂歡開(kāi)始了,各大電商又開(kāi)始了大力度的折扣促銷(xiāo),我們的小胖又給大家謀了一波福利,淘寶APP直接搜索:小胖發(fā)福利,每天領(lǐng)取三次粉絲專(zhuān)屬現(xiàn)金大紅包。這篇文章主要介紹了用Python完成毫秒級(jí)搶單,助你秒殺淘寶大單,需要的朋友可以參考下2019-06-06Python解析json文件相關(guān)知識(shí)學(xué)習(xí)
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。接下來(lái)通過(guò)本文給大家介紹python解析json文件相關(guān)知識(shí),對(duì)python解析json文件相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-03-03Python實(shí)現(xiàn)判斷一個(gè)整數(shù)是否為回文數(shù)算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)判斷一個(gè)整數(shù)是否為回文數(shù)算法,結(jié)合實(shí)例形式分析了Python針對(duì)字符串的翻轉(zhuǎn)、判斷等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03零基礎(chǔ)寫(xiě)python爬蟲(chóng)之urllib2使用指南
urllib2是Python的一個(gè)獲取URLs(Uniform Resource Locators)的組件。他以u(píng)rlopen函數(shù)的形式提供了一個(gè)非常簡(jiǎn)單的接口,下面我們用實(shí)例講解他的使用方法2014-11-11pandas如何統(tǒng)計(jì)某一列或某一行的缺失值數(shù)目
這篇文章主要介紹了pandas如何統(tǒng)計(jì)某一列或某一行的缺失值數(shù)目,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05python數(shù)組處理之最值與下標(biāo)問(wèn)題
這篇文章主要介紹了python數(shù)組處理之最值與下標(biāo)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05