python怎么ftp上传文件

 我来答
匿名用户
2016-06-23
展开全部
 通过python下载FTP上的文件夹的实现代码:
  # -*- encoding: utf8 -*-
  import os
  import sys
  import ftplib
  class FTPSync(object):
  def __init__(self):
  self.conn = ftplib.FTP('10.22.33.46', 'user', 'pass')
  self.conn.cwd('/') # 远端FTP目录
  os.chdir('/data/') # 本地下载目录
  def get_dirs_files(self):
  u''' 得到当前目录和文件, 放入dir_res列表 '''
  dir_res = []
  self.conn.dir('.', dir_res.append)
  files = [f.split(None, 8)[-1] for f in dir_res if f.startswith('-')]
  dirs = [f.split(None, 8)[-1] for f in dir_res if f.startswith('d')]
  return (files, dirs)
  def walk(self, next_dir):
  print 'Walking to', next_dir
  self.conn.cwd(next_dir)
  try:
  os.mkdir(next_dir)
  except OSError:
  pass
  os.chdir(next_dir)
  ftp_curr_dir = self.conn.pwd()
  local_curr_dir = os.getcwd()
  files, dirs = self.get_dirs_files()
  print "FILES: ", files
  print "DIRS: ", dirs
  for f in files:
  print next_dir, ':', f
  outf = open(f, 'wb')
  try:
  self.conn.retrbinary('RETR %s' % f, outf.write)
  finally:
  outf.close()
  for d in dirs:
  os.chdir(local_curr_dir)
  self.conn.cwd(ftp_curr_dir)
  self.walk(d)
  def run(self):
  self.walk('.')
  def main():
  f = FTPSync()
  f.run()
  if __name__ == '__main__':
  main()
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式