通过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()
相关推荐
-
python实现支持目录FTP上传下载文件的方法
本文实例讲述了python实现支持目录FTP上传下载文件的方法.分享给大家供大家参考.具体如下: 该程序支持ftp上传下载文件和目录.适用于windows和linux平台. #!/usr/bin/env python # -*- coding: utf-8 -*- import ftplib import os import sys class FTPSync(object): conn = ftplib.FTP() def __init__(self,host,port=21): self.c
-
python实现从网络下载文件并获得文件大小及类型的方法
本文实例讲述了python实现从网络下载文件并获得文件大小及类型的方法.分享给大家供大家参考.具体实现方法如下: import urllib2 from settings import COOKIES opener = urllib2.build_opener() cookies = ";".join("%s=%s" % (k, v) for k, v in COOKIES.items()) opener.addheaders.append(('Cookie', c
-
Python实现批量下载文件
Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_all() from gevent.pool import Pool import requests import sys import os def download(url): chrome = 'Mozilla/5.0 (X11; Linux i86_64) AppleWebKit/537.36
-
Python实现多线程下载文件的代码实例
实现简单的多线程下载,需要关注如下几点:1.文件的大小:可以从reponse header中提取,如"Content-Length:911"表示大小是911字节2.任务拆分:指定各个线程下载的文件的哪一块,可以通过request header中添加"Range: bytes=300-400"(表示下载300~400byte的内容),注意可以请求的文件的range是[0, size-1]字节的.3.下载文件的聚合:各个线程将自己下载的文件块保存为临时文件,所有线程都完
-
python下载文件时显示下载进度的方法
本文实例讲述了python下载文件时显示下载进度的方法.分享给大家供大家参考.具体分析如下: 将这段代码放入你的脚本中,类似:urllib.urlretrieve(getFile, saveFile, reporthook=report) 第三个参数如下面的函数定义report,urlretrieve下载文件时会实时回调report函数,显示下载进度 def report(count, blockSize, totalSize): percent = int(count*blockSize*10
-
python下载文件记录黑名单的实现代码
具体代码如下所示: #!/usr/bin/python # -*- coding: GBK -*- # -*- coding: UTF-8 -*- from ftplib import FTP import os import datetime ftp_server = '127.0.0.1' # 对应ftp服务器地址 username = 'ponshine' # 用户名 password = '1qaz2wsx' # 密码 ftp_path = '/GBCC/' # ftp目录 local_
-
python 从远程服务器下载日志文件的程序
复制代码 代码如下: import osimport sysimport ftplibimport socket ################################################################### sign in the ftp server and download the log file. # 登陆生产服务器下载日志##############################################################
-
python实现从ftp服务器下载文件的方法
本文实例讲述了python实现从ftp服务器下载文件的方法.分享给大家供大家参考.具体实现方法如下: import ftplib ftp = ftblib.FTP("ftp.yourServer.com") ftp.login("username","password") filename = "index.html" ftp.storlines("STOR "+filename,open(filename
-
通过python下载FTP上的文件夹的实现代码
复制代码 代码如下: # -*- encoding: utf8 -*-import osimport sysimport ftplibclass FTPSync(object): def __init__(self): self.conn = ftplib.FTP('10.22.33.46', 'user', 'pass') self.conn.cwd('/') # 远端FTP目录 os.chdir('/data/')
-
Python实现FTP上传文件或文件夹实例(递归)
本文实例讲述了Python实现FTP上传文件或文件夹实例.分享给大家供大家参考.具体如下: import sys import os import json from ftplib import FTP _XFER_FILE = 'FILE' _XFER_DIR = 'DIR' class Xfer(object): ''''' @note: upload local file or dirs recursively to ftp server ''' def __init__(self): s
-
使用ftpClient下载ftp上所有文件解析
需求:最新项目需要,写个小功能,需求就是实时下载ftp指定文件夹下的所有文件(包括子目录)到本地文件夹中,保留文件到目录路径不变. 分析:关键在于实时和下载并保持原目录.实时使用线程的定时调度完成,主要做后者,这显然要使用递归,但是ftp上的文件是不能直接得到相对路径的(恕我才疏学浅,并没有在FTPClient类中找到类似getPath()的方法),因此路径是要自己记录.总体思路有以下: 1.得到所有路径以及子路径:递归遍历所有文件到路径.参数:ftp为FTPClient对象,path为当前的路
-
Python批量解压&压缩文件夹的示例代码
目录 一.python批量解压 二.python批量压缩 一.python批量解压 提示:如果是重要数据解压前请先备份,解压后会覆盖原压缩文件!! 解压前: 解压后:文件名为英文: 文件名中包含中文: 代码如下 import os import shutil import zipfile # 首先引入需要的工具包 # shutil为后期移动文件所需,可以忽略此项 # 路径改这里! #parent_path = r'输入路径,会解压该路径下的所有zip压缩文件' parent_path = r'E
-
详解Python下ftp上传文件linux服务器
模块介绍: from ftplib import FTP ftp = FTP() #设置变量 ftp.set_debuglevel(2) #打开调试级别2 显示详细信息 ftp.connect("IP", "port") #连接ftp, IP和端口 ftp.log("user", "password") #连接的用户名.密码 ftp.cwd(pathname) #设置FTP当前操作的路径 ftp.dir() #显示目录下的文件
-
批处理(ftp)上传文件到服务器的代码
backup.bat 复制代码 代码如下: backup.batftp -n -s:"d:\userweb\upbak.ftp" upbak.ftp 复制代码 代码如下: upbak.ftpopen 192.168.1.19 user webbakusername bakpassword!@#123 lcd D:\userweb\www.gsta.cn\CMS\Databases bin prompt mput *.* bye quit exit
-
Python ftp上传文件
以下代码比较简单,对python实现ftp上传文件相关知识感兴趣的朋友可以参考下 #encoding=utf8 from ftplib import FTP #加载ftp模块 IP = '103.240.150.104' user = 'webmaster@stchat.cn' password = '5' filename = 'zhihu.html' path = '/root/Desktop/zhihu.html' ftp=FTP() #设置变量 ftp.set_debuglevel(2)
-
Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法
一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法.下载文件的通用方法以及删除文件.在ftp服务器上传文件夹.检测文件夹是否存在等,里面的有些代码对编写JAVA文件上传或许有参考价值,Java FTP主文件代码: package ftpDemo; import java.io.DataOutputStream; import java.io.InputStream; import java.io.OutputStream; import sun.net
-
Python FTP两个文件夹间的同步实例代码
具体代码如下所示: # -*- coding: utf-8 -*- ''''''' ftp自动检测源文件夹的更新,将源文件夹更新的内容拷贝到目标文件夹中 使用树的层序遍历算法,支持深度目录拷贝 ''' import os from ftplib import FTP import os,sys,string,datetime,time import shutil import socket class MyUpdateMonitor(object): def __init__(self, hos
-
java使用ftp上传文件示例分享
复制代码 代码如下: import java.io.ByteArrayInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.SocketException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.commons.io.IOUtils; import
随机推荐
- js history对象简单实现返回和前进
- Oracle数据库集复制方法浅议
- ExtJs3.0中Store添加 baseParams 的Bug
- asp.net ListView 数据绑定
- 使用rpclib进行Python网络编程时的注释问题
- 用批处理实现电脑自动关机
- SQL Server中发送HTML格式邮件的方法
- 那些年,我还在学习asp.net(二) 学习笔记
- IE不支持getElementsByClassName最终完美解决方案
- jQuery Mobile弹出窗、弹出层知识汇总
- jQuery EasyUI中DataGird动态生成列的方法
- 解决Android 沉浸式状态栏和华为虚拟按键冲突问题
- windows下jsp+mysql网站环境配置方法第1/2页
- 前端开发用得着的nginx配置(场景)
- pthread_cond_wait() 用法深入分析
- 必须收藏的php实用代码片段
- C#如何自定义线性节点链表集合
- 使用递归实现数组求和示例分享
- 域名产业风生水起 投资领域生机勃勃
- js设置随机切换背景图片的简单实例