python上传ftp简书_python实现上传FTP

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import paramiko

from urllib import quote

#Environment_XXX为上传FTP的服务器路径

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为服务器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):

# 创建SSH对象

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)

# 实例化一个 sftp对象,指定连接的通道

sftp = paramiko.SFTPClient.from_transport (trans)

# 发送文件

sftp.put (localpath, remotepath)

# 下载文件

trans.close ()

except Exception,e:

print str(e) + 'SFTP上传失败'

finally:

print 'SFTP上传结束'

#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)

#获取远端服务器下对应的文件佳

ftp.execute('cd /home/appbao/app/shoushua_biz/iOS/ && ls')

remote = raw_input('选择一个文件夹或者重新创建一个文件夹\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('请输入本地文件\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 '上传的远端地址\r\n%s'%finalPath

将此python执行加入到自定义命令

自定义命令代码举例

postFTP(){

python /XXX/XXX/XXX.py #此处文件路径为你的python代码路径

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值