1:
#!/usr/local/bin/python # encoding: utf-8 import os import datetime import sys import shutil import socket from ftplib import FTP import logging import logging.config def check_run_pid(app): res = os.popen("ps aux | grep -v grep| grep \'%s\'" %(app)) if len(res.readlines()) > 2: print "App has already run, exit at %s" %(datetime.datetime.today()) sys.exit() else: print "Begin to start %s in %s" %(app, datetime.datetime.today()) if __name__ == '__main__': check_run_pid("ftpclient.py") SOURCE_DIR = '/proclog/transfers/FCBill_1' #源目录 #SOURCE_DIR = 'd:/' REMOTE_DIR = '/proclog/2nd_edition/flexicache/upload' #目标目录 host = '' #目标主机地址 username = '' password = '' logging.config.fileConfig("ftp_logging.conf") logger = logging.getLogger("ftp") source_files = [fname for fname in os.listdir(SOURCE_DIR) if fname.endswith('.gz')] logger.info('%s files to process' % len(source_files)) socket.setdefaulttimeout(15) ftp = FTP(host) ftp.set_pasv(False) ftp.login(username, password) ftp.cwd(REMOTE_DIR) for fname in source_files: f = open(os.path.join(SOURCE_DIR, fname), 'rb') ftp.storbinary("STOR " + fname + '.temp', f) ftp.rename(fname + '.temp', fname) f.close() os.remove( os.path.join(SOURCE_DIR, fname)) logger.info('%s transfer to main ftp finish.' % (os.path.join(SOURCE_DIR, fname))) ftp.quit()
2:日志config
[loggers] keys=root,main [handlers] keys=consoleHandler,fileHandler [formatters] keys=fmt [logger_root] level=DEBUG handlers=consoleHandler [logger_main] level=DEBUG qualname=main handlers=fileHandler [handler_consoleHandler] class=StreamHandler level=DEBUG formatter=fmt args=(sys.stdout,) [handler_fileHandler] class=logging.handlers.RotatingFileHandler level=DEBUG formatter=fmt args=('tst.log','a',20000,5,) [formatter_fmt] format=%(asctime)s - %(name)s - %(levelname)s - %(message)s datefmt=
3:一些用法
from ftplib import FTP import socket def upload(): print '超时时间设置为10秒' socket.setdefaulttimeout(10) print '开启ftp' ftp = FTP('ftp.website.com') print '登录ftp' ftp.login('username', 'password') print '执行ftp操作' ftp.dir() print '退出ftp' ftp.quit() if __name__== '__main__': upload()
ftp的具体方法:
login(user='anonymous',passwd='', acct='') 登录到FTP服务器,所有的参数都是可选的
pwd() 得到当前工作目录
cwd(path) 把当前工作目录设置为path
dir([path[,...[,cb]]) 显示path目录里的内容,可选的参数cb 是一个回调函数,它会被传给retrlines()方法
nlst([path[,...]) 与dir()类似,但返回一个文件名的列表,而不是显示这些文件名
retrlines(cmd [, cb]) 给定FTP 命令(如“RETR filename”),用于下载文本文件。可选的回调函数cb 用于处理文件的每一行
retrbinary(cmd, cb[,bs=8192[, ra]]) 与retrlines()类似,只是这个指令处理二进制文件。回调函数cb 用于处理每一块(块大小默认为8K)下载的数据。
storlines(cmd, f) 给定FTP 命令(如“STOR filename”),以上传文本文件。要给定一个文件对象f
storbinary(cmd, f[,bs=8192]) 与storlines()类似,只是这个指令处理二进制文件。要给定一个文件对象f,上传块大小bs 默认为8Kbs=8192])
rename(old, new) 把远程文件old 改名为new
delete(path) 删除位于path 的远程文件
mkd(directory) 创建远程目录
login(user='anonymous',passwd='', acct='') 登录到FTP服务器,所有的参数都是可选的
pwd() 得到当前工作目录
cwd(path) 把当前工作目录设置为path
dir([path[,...[,cb]]) 显示path目录里的内容,可选的参数cb 是一个回调函数,它会被传给retrlines()方法
nlst([path[,...]) 与dir()类似,但返回一个文件名的列表,而不是显示这些文件名
retrlines(cmd [, cb]) 给定FTP 命令(如“RETR filename”),用于下载文本文件。可选的回调函数cb 用于处理文件的每一行
retrbinary(cmd, cb[,bs=8192[, ra]]) 与retrlines()类似,只是这个指令处理二进制文件。回调函数cb 用于处理每一块(块大小默认为8K)下载的数据。
storlines(cmd, f) 给定FTP 命令(如“STOR filename”),以上传文本文件。要给定一个文件对象f
storbinary(cmd, f[,bs=8192]) 与storlines()类似,只是这个指令处理二进制文件。要给定一个文件对象f,上传块大小bs 默认为8Kbs=8192])
rename(old, new) 把远程文件old 改名为new
delete(path) 删除位于path 的远程文件
mkd(directory) 创建远程目录
相关推荐
python ftp断点上传下载,支持主、从模式断点上传及下载
Python FTP Get是一个常见的任务,它涉及到使用Python编程语言来实现FTP(File Transfer Protocol)客户端功能,以便从远程服务器上下载文件。在这个过程中,我们需要使用Python的`ftplib`库,这是Python标准库的一...
在Python编程中,将Excel表格数据上传到FTP服务器是一项常见的任务,特别是在数据处理和文件共享的场景下。这里,我们主要关注如何使用Python的库来实现这个功能,以及FTP网络编程的基本概念。 首先,我们需要了解...
**Python-pyftpdlib:构建高性能FTP服务器的利器** `pyftpdlib`是一个用Python编写的开源FTP服务器库,它为开发者提供了一个高级、便携、易于使用的接口,以便快速开发出高效的异步FTP服务器。这个库的灵活性和可...
python ftp连接服务器的操作详解
支持上传,下载ftp的文件,备份,递归。
用python写的,获取远程服务器文件目录列表及删除文件,适用获取多个文件列表多层文件夹
【Python FTP 文件夹同步】在Python中,FTP(File Transfer Protocol)被广泛用于在本地文件系统和远程服务器之间传输文件。本实例展示了如何利用Python实现两个文件夹间的同步,特别是针对FTP服务器的情况。同步...
**Python FTP Server Library (Pyftpdlib) 深度解析** Pyftpdlib是一个用Python编写的高级FTP服务器库,版本为1.5.1。这个库为开发者提供了便捷的、可移植的编程接口,使得创建功能强大的异步FTP服务器变得简单。...
ftp暴力破解 python脚本
`ftp.zip`这个压缩包中包含了一个名为`ftp.py`的Python脚本,它应该是一个实现了FTP文件上传功能的实用工具。 在Python中,我们可以使用内置的`ftplib`库来处理FTP通信。`ftplib`提供了一系列的方法和类,使我们...
Python FTP库提供了对FTP(File Transfer Protocol)服务器的访问,使得在Python程序中进行文件的下载、删除和上传变得十分便捷。以下是对标题和描述中所述知识点的详细说明: 1. **FTP链接**: 在Python中,我们...
FTP(File Transfer Protocol)是互联网上用于文件传输的标准协议,而利用Python实现FTP下载备份功能可以帮助我们自动化地从远程服务器获取数据,确保数据的安全与可访问性。本教程将详细介绍如何使用Python来实现这...
在这个名为"FTP.rar"的压缩包中,包含的是一个Python实现的FTP客户端程序。通过Python的ftp_tpk标签,我们可以推断作者可能使用了一些特定的库或者自定义的方法来处理FTP连接和数据传输。 首先,我们来看看`ftp_...
python实现ftp客户端,可以和ftp服务器进行通信。
最全的python写的ftp Server
Python FTP库是Python标准库中的一个模块,用于处理FTP(File Transfer Protocol)协议,它提供了在客户端和FTP服务器之间进行文件传输的能力。本篇将详细解释如何使用Python FTP库实现按目录结构上传和下载文件。 ...
Python FTP自动上传、下载脚本是一种实用的工具,它允许用户通过编程方式执行FTP(File Transfer Protocol)操作,如上传和下载文件。FTP是互联网上用于传输文件的标准协议,而Python提供了一些库,如`ftplib`,使得...
【ftpc - 一个小型且简洁的Python FTP客户端】 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议。在Python编程环境中,有许多库可以用来实现FTP客户端,例如`ftplib`,它内置在标准库中,...