Python—网络编程_FTP

FTP编程

  • FTP(FileTransferProtocal)文件传输协议

  • 用途: 定制一些特殊的上传下载文件的服务

  • 用户分类: 登陆FTP服务器必须有一个账号

    • Real账户: 注册账户
    • Guest账户: 可能临时对某一类人的行为进行授权
    • Anonymous账户: 匿名账户,允许任何人
  • FTP工作流程

    1. 客户端链接远程主机上的FTP服务器
    2. 客户端输入用户名和密码(或者“anonymous”和电子邮件地址)
    3. 客户端和服务器进行各种文件传输和信息查询操作
    4. 客户端从远程FTP服务器退出,结束传输
  • FTP文件表示

    • 分三段表示FTP服务器上的文件
    • HOST: 主机地址,类似于 ftp.mozilla.org, 以ftp开头
    • DIR:目录, 表示文件所在本地的路径,例如 pub/android/focus/1.1-RC1/
    • File: 文件名称, 例如 Klar-1.1-RC1.apk
    • 如果想完整精确表示ftp上某一个文件,需要上述三部分组合在一起
    • 案例v06
**v06**
# 需要导入相应包,主要是ftplib
import ftplib # 关于FTP的操作都在这个包里边
import os
import socket

# 三部分精确表示在ftp服务器上的某一个文件
# 好多公开ftp服务器访问会出错或者没有反应
HOST = "ftp.acc.umu.se"
DIR = 'Public/EFLIB/'
FILE = 'README'

# 1. 客户端链接远程主机上的FTP服务器
try:
    f = ftplib.FTP()
    # 通过设置调试级别可以方便调试
    f.set_debuglevel(2)
    # 链接主机地址
    f.connect(HOST)
except Exception as e:
    print(e)
    exit()
print("***Connected to host {0}".format(HOST))



# 2. 客户端输入用户名和密码(或者“anonymous”和电子邮件地址)
try:
    # 登录如果没有输入用户信息,则默认使用匿名登录
    f.login()
except Exception as e:
    print(e)
    exit()
print("***Logged in as 'anonymous'")


# 3. 客户端和服务器进行各种文件传输和信息查询操作
try:
    # 更改当前目录到指定目录
    f.cwd(DIR)
except Exception as e:
    print(e)
    exit()
print("*** Changed dir to {0}".format(DIR))

try:
    # 从FTP服务器上下载文件
    # 第一个参数是ftp命令
    # 第二个参数是回调函数
    # 此函数的意思是,执行RETR命令,下载文件到本地后,运行回调函数
    f.retrbinary('RETR {0}'.format(FILE), open(FILE, 'wb').write)
except Exception as e:
    print(e)
    exit()

# 4. 客户端从远程FTP服务器退出,结束传输
f.quit()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种广泛使用的编程语言,可以用于网络编程。下面是一些Python网络编程的基础知识和技术: 1. socket模块: Python中的socket模块提供了一种用于网络通信的接口,可以用于创建TCP或UDP服务器和客户端。 2. TCP服务器: 在Python中,可以使用socket模块创建TCP服务器,可以使用socket.accept()方法等待客户端连接,使用socket.recv()方法接收客户端发送的数据,使用socket.send()方法发送数据给客户端。 3. TCP客户端: 在Python中,可以使用socket模块创建TCP客户端,可以使用socket.connect()方法连接到服务器,使用socket.send()方法发送数据给服务器,使用socket.recv()方法接收服务器发送的数据。 4. UDP服务器和客户端: 在Python中,可以使用socket模块创建UDP服务器和客户端,可以使用socket.recvfrom()方法接收来自客户端的数据,使用socket.sendto()方法将数据发送给客户端。 5. HTTP请求: Python中的urllib模块可以用于发送HTTP请求,可以使用urllib.request.urlopen()方法打开URL,使用read()方法读取响应数据。 6. SMTP邮件: Python中的smtplib模块可以用于发送电子邮件,可以使用smtplib.SMTP()方法连接到邮件服务器,使用sendmail()方法发送邮件。 7. FTP文件传输: Python中的ftplib模块可以用于FTP文件传输,可以使用ftplib.FTP()方法连接到FTP服务器,使用retrbinary()方法下载文件,使用storbinary()方法上传文件。 总之,Python网络编程提供了丰富的API和工具,可以轻松地创建各种网络应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值