python實(shí)現(xiàn)上傳FTP

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import paramiko
from urllib import quote

#Environment_XXX為上傳FTP的服務(wù)器路徑
Environment_root = '/home/appbao/app/shoushua_biz/iOS/'
Environment_text = '/home/appbao/app/shoushua_biz/iOS/test'
Environment_RC = '/home/appbao/app/shoushua_biz/iOS/rc'
Environment_alpha = '/home/appbao/app/shoushua_biz/iOS/alpha'
Environment_release = '/home/appbao/app/shoushua_biz/iOS/release'

#remote_XXX為服務(wù)器ipa下載路徑
remote_head_text = 'http://172.16.132.241/app/shoushua_biz/iOS/test'
remote_head_RC = 'http://172.16.132.241/app/shoushua_biz/iOS/rc'
remote_head_alpha = 'http://172.16.132.241/app/shoushua_biz/iOS/alpha'
remote_head_release = 'http://172.16.132.241/app/shoushua_biz/iOS/release'

Environment = [Environment_text,Environment_RC,Environment_alpha,Environment_release]
remote_heads = [remote_head_text,remote_head_RC,remote_head_alpha,remote_head_release]

class SFTPClient:

    #init
    def __init__(self,host = None,userName = None,pwd = None):
        print '初始化完成'
        self.host = host
        self.userName = userName
        self.pwd = pwd
        print self.host + self.userName + self.pwd
        pass

    # creat SFTP
    def connectSFTP(self):
        # 創(chuàng)建SSH對(duì)象
        self.sftp = paramiko.SSHClient()
        self.sftp.set_missing_host_key_policy (paramiko.AutoAddPolicy ())
        self.sftp.connect(self.host,22, self.userName, self.pwd ,timeout=20)
        print 'SFTP連接完成'

    def execute(self, *cmd):
        self.files = []
        stdin, stdout, stderr = self.sftp.exec_command (*cmd)
        for x in stdout.readlines():
            print x
            self.files.append(x)
    #upload
    def uploadData(self,localpath = None,remotepath = None):
        try:
            trans = paramiko.Transport ((self.host, 22))
            # 建立連接
            trans.connect (username=self.userName, password=self.pwd)
            # 實(shí)例化一個(gè) sftp對(duì)象,指定連接的通道
            sftp = paramiko.SFTPClient.from_transport (trans)
            # 發(fā)送文件
            sftp.put (localpath, remotepath)
            # 下載文件
            trans.close ()
        except Exception,e:
            print str(e) + 'SFTP上傳失敗'
        finally:
            print 'SFTP上傳結(jié)束'

    #close
    def close(self):
        self.sftp.close()


if __name__ == '__main__':
    ftp = None
    try:
        ftp = SFTPClient (host='FTP地址', userName='用戶名', pwd='密碼')
        ftp.connectSFTP ()
    except Exception,e:
        print '連接失敗'+str(e)
        exit(1)
    
    #獲取遠(yuǎn)端服務(wù)器下對(duì)應(yīng)的文件佳
    ftp.execute('cd /home/appbao/app/shoushua_biz/iOS/ && ls')
    remote = raw_input('選擇一個(gè)文件夾或者重新創(chuàng)建一個(gè)文件夾\r\n')

    print '您選擇了%s文件'%remote

    hasFiles = False
    for sub in ftp.files:
        if(sub.encode ('gbk') == remote):
            hasFiles = True
    if hasFiles == False:
        ftp.execute ('mkdir /home/appbao/app/shoushua_biz/iOS/%s' % remote)

    #獲取文件名稱
    filePath = raw_input('請(qǐng)輸入本地文件\r\n')
    filePath = filePath.strip()
    filePath = quote(filePath)
    fileName = filePath.split('/')[-1]

    #上傳
    ftp.uploadData(localpath=filePath,
                remotepath='%s%s/%s'%(Environment_root,remote,fileName))
    ftp.close()

    finalPath = 'http://172.16.132.241/app/shoushua_biz/iOS/%s/%s'%(remote,fileName)
    print '上傳的遠(yuǎn)端地址\r\n%s'%finalPath

將此python執(zhí)行加入到自定義命令

自定義終端執(zhí)行>http://www.reibang.com/p/5fcd173f6103

自定義命令代碼舉例

postFTP(){
python /XXX/XXX/XXX.py  #此處文件路徑為你的python代碼路徑
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末薄坏,一起剝皮案震驚了整個(gè)濱河市蚓挤,隨后出現(xiàn)的幾起案子劲赠,更是在濱河造成了極大的恐慌,老刑警劉巖掂铐,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異竖配,居然都是意外死亡通今,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門娇妓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人活鹰,你說(shuō)我怎么就攤上這事哈恰。” “怎么了志群?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵着绷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我锌云,道長(zhǎng)荠医,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任桑涎,我火速辦了婚禮彬向,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘攻冷。我一直安慰自己娃胆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布等曼。 她就那樣靜靜地躺著里烦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪禁谦。 梳的紋絲不亂的頭發(fā)上胁黑,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音州泊,去河邊找鬼丧蘸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拥诡,可吹牛的內(nèi)容都是我干的触趴。 我是一名探鬼主播氮发,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼冗懦!你這毒婦竟也來(lái)了爽冕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤披蕉,失蹤者是張志新(化名)和其女友劉穎颈畸,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體没讲,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡眯娱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了爬凑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徙缴。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嘁信,靈堂內(nèi)的尸體忽然破棺而出于样,到底是詐尸還是另有隱情,我是刑警寧澤潘靖,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布穿剖,位于F島的核電站,受9級(jí)特大地震影響卦溢,放射性物質(zhì)發(fā)生泄漏糊余。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一单寂、第九天 我趴在偏房一處隱蔽的房頂上張望贬芥。 院中可真熱鬧,春花似錦凄贩、人聲如沸誓军。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)昵时。三九已至,卻和暖如春椒丧,著一層夾襖步出監(jiān)牢的瞬間壹甥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工壶熏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留句柠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像溯职,于是被迫代替她去往敵國(guó)和親精盅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容