Python FTP 下载文件 简单示例

简单的FTP下载 ,不加任何异常判断。

<span style="font-size:14px;">import os

from ftplib import FTP

ftp_addr = '10.10.0.1'

f=FTP(ftp_addr)
f.login('anonymous')
f.cwd("apk_download/")
remote_file = '20141223140651.apk'
f.retrbinary("RETR %s" % remote_file, open(remote_file, "wb").write)</span>

网上搜到个带 异常处理的版本 来自

http://www.hiadmin.org/code/python-ftp

<span style="font-size:14px;">#! encoding:utf-8
# Filename : ftptestdown.py
#使用ftplib.error_perm函数来打印输出错误信息

import ftplib
import os
import socket

remote_host = "ftp.kernel.org"
remote_dir = "/pub/linux/kernel/v1.0"
remote_file = "patch8.gz"
def kernelmain():
    try:
        ftp = ftplib.FTP(remote_host)
    except (socket.error, socket.gaierror):
        print "ERROR cannot reach '%s'" % remote_host
        return
    print "..Connected to remote_host '%s'.." %remote_host

    try:
        ftp.login() #使用匿名账号登陆也就是anonymous
    except ftplib.error_perm:
        print "ERROR cannot login anonymously"
        ftp.quit()
        return
    print "...logged in as 'anonymously'..."

    try:
        ftp.cwd(remote_dir) #切换当前工作目录
    except ftplib.error_perm:
        print "ERROR cannot cd to '%s'" % remote_dir
        ftp.quit()
        return
    print "....Changed to '%s' folder...." % remote_dir

    try:#传一个回调函数给retrbinary() 它在每接收一个二进制数据时都会被调用
        ftp.retrbinary("RETR %s" % remote_file, open(remote_file, "wb").write)
    except ftplib.error_perm:
        print "ERROR cannot remote_file '%s'" % remote_file
        os.unlink(remote_file)
    else:
        print ".....Download '%s' to cwd....." % remote_file

    ftp.quit()
    return

#调用函数执行测试
if __name__ == "__main__":
    kernelmain()</span>

时间: 2024-08-01 15:56:01

Python FTP 下载文件 简单示例的相关文章

Python之ftp下载文件测试代码

IT审计中有一个最多的执行步骤就是取证.最近的项目过程中,有需要验证ftp服务机密性的需要,就写了一个ftp访问并下载文件的脚本. 此步骤实现目的有三: 1.ftp是否可以匿名访问到敏感信息. 2.在渗透人员拥有低等.中等技术水平前提下,目标ftp服务器的日志记录.入侵检测等是否会产生记录.阻断及预警功能. 3.也是最重要的,在上述条件下,此举基于可渗透时间.现行部署条件.应对防御未来直接支出代价.数据丢失严重性综合得出判断结论,并据此给出建议. 1 #coding=utf-8 2 import

.Net 连接FTP下载文件报错:System.InvalidOperationException: The requested FTP command is not supported when using HTTP proxy

系统环境: Windows + .Net Framework 4.0 问题描述: C#连接FTP下载文件时,在部分电脑上有异常报错,在一部分电脑上是正常的:异常报错的信息:System.InvalidOperationException: The requested FTP command is not supported when using HTTP proxy 分析过程: 在网上搜索到的解决方案,基本都是将代理置为null:request.Proxy = null; 并没有解释其原因. 调

FTP下载文件工具类

FTP文件下载需要的jar包commons-net-2.0.jar有时还需要:jakarta-oro.jar 1 package com.wdxc.util; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.OutputStream; 7 import java.util.HashMap; 8 import java.util.Ma

c#.net从ftp下载文件到本地

c#.net从ftp下载文件到本地    /*首先从配置文件读取ftp的登录信息*/ string TempFolderPath = System.Configuration.ConfigurationManager.AppSettings["TempFolderPath"].ToString(); string FtpUserName = System.Configuration.ConfigurationManager.AppSettings["FtpUserName&q

AIX 用SHELL脚本 自动FTP下载文件

用SHELL脚本 自动FTP下载文件:kaiboss1:/weblogic/bboss> uname -xAIX kaiboss1 3315381580 3 5 00C59CB54C00kaiboss1:/weblogic/bboss> more ./memberupload/memberupload.shcd /weblogic/bboss/memberupload/fileftp -inv 10.1.140.123 <<!>memberfile.loguser ftp31

C#FTP下载文件出现远程服务器返回错误: (500) 语法错误,无法识别命令

如果下载多个文件的时候,有时候莫名其妙的出现500服务器错误,很有可能是没有设置KeepAlive 属性导致的. 出现应用程序未处理的异常:2015/1/6 11:40:56 异常类型:WebException 异常消息:远程服务器返回错误: (500) 语法错误,无法识别命令. 参考:http://www.cnblogs.com/webabcd/archive/2007/01/21/626242.html KeepAlive - 指定连接是应该关闭还是在请求完成之后关闭,默认为true ///

python实现从FTP下载文件通过多线程同时分发到多台机器

python非常厉害的一门编程语言,被称之为编程语言中的万能粘合剂,它可以和现有的大部分编程语言来完美对接,今天来为大家说说使用python写一个从ftp上下载文件,然后通过python的多线程模块threading同时分发到多台机器,甚至上百台机器上,多了不说了,直接上代码,代码里会详细讲解每一步的操作. 可根据你的实际情况来修改脚本,实现多线程远程无缝隙操作服务器. #!/usr/bin/python #coding: utf-8 #加载我们需要使用到的模块 from ftplib impo

python_ftplib实现通过FTP下载文件

1.  Ftplib常用函数介绍 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件,本次主要介绍连接FTP并且进行文件下载功能,可用于自动化部署文件下载,日志文件下载等 1.1  加载ftp模块 from ftplib import FTP或者import ftplib,在函数编写前就需要加载ftp模块 1.2  设置变量 ftp = FTP(),个人觉得类似于析构函数,就是定义变量时需要指定变量为FTP变量 1.3  连接f

Qt利用FTP下载文件

自己封装的ftpCtrl类,测试正常下载文件. 原文:默默地EEerhttp://www.cnblogs.com/hebaichuanyeah/p/6083036.html ftpCtrl.h #ifndef FTPCTRL_H #define FTPCTRL_H #include <QFile> #include <QFtp> class FtpCtrl : public QObject { Q_OBJECT public: FtpCtrl(QObject *parent = 0