python和ftp

Posted bayuqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python和ftp相关的知识,希望对你有一定的参考价值。

1 ftp(文件传输协议)工作流程

1 客户端连接远程主机上的FTP服务器

2 客户端输入用户名和密码(或‘anomymous’ 和电子邮件地址)

3 客户端进行各种文件传输和信息查询操作

4 客户端从远程FTP服务器直接退出,结束传输

ftp两种模式:主动和被动,只有主动模式下服务器才使用数据端口,20号。被动模式下,服务器只是高数客户端随机的端口号,客户端必须主动建立连接,21号。

2 python和FTP

导入ftplib模块,实例化一个ftplib.FTP类对象,所有的FTP操作(如登录、传输文件和注销的)都要这个对象完成

ftplib.FTP类的方法,只介绍常用的几个

login(user=‘anonymous‘,passwd=",act=“)  #登录服务器 ,所有的参数都可选

pwd #获取当前目录

cwd(path) #把当前工作目录设置path所示的路径(如path=/ftp/byq/example)

dir([path[,…[,cb]])# 显示path目录中的内容,可选的参数cb是一个回调函数,传递给retrlines()方法

retrbinary(cmd,cb[,8kb])

# 下载文件,只是处理二进制文件,回调函数cb用于处理每一块(默认大小8kb)的下载的数据

storbinary(cmd,f[,8kb])#处理二进制文件,要给定一个对象f,上传块bs大小默认8kb

3 客户端FTP实例

 1 import ftplib
 2 import socket
 3 import os
 4 
 5 
 6 host = ftp,website
 7 dirn = filedir
 8 files = filename
 9 
10 
11 def main():
12     try:
13         f = ftplib.FTP(host)
14     except(socket.error, socket.gaierror) as e:
15         print(error:cannot reach "%S" % host)
16         return
17     print(***Connected to hos "%s" % host)
18     
19     try:
20         f.login()
21     except ftplib.error_perm:
22         print(error:cannot login anonymously)
23         f.quit()
24         return 
25     print(***logged in as "anonymous")
26     
27     try:
28         f.cwd(dirn)
29     except ftplib.error_perm:
30         print(error:cannot cd to "%s" % dirn)
31         f.quit()
32         return 
33     print(***changed to "%s" folder % dirn)
34     
35     try:
36         f.retrbinary(retr %s % files, open(files, wb).write)
37     except ftplib.error_perm:
38         print(error:cannot read files "%s" % files)
39         os.unlink(files)
40     else:
41         print(***downloaded "%s" to cmd % files)
42         f.quit()
43     
44     if __name__ == __main__:  # 运行独立脚本的惯用方法
45         main()     

 

 

 

 

 

 

以上是关于python和ftp的主要内容,如果未能解决你的问题,请参考以下文章

python 代码片段和解决方案

Python snippet(代码片段)

你如何在 python 中处理 graphql 查询和片段?

学习笔记:python3,代码片段(2017)

python使用上下文对代码片段进行计时,非装饰器

一句python代码搭建FTP服务