用python实现FTP客户端

本文介绍了使用Python实现FTP客户端的项目,包括浏览目录、随机下载单个和多个文件的功能。程序依赖ftplib库,需要用户提供FTP服务器的相关信息。在编程过程中,主要解决了区分文件和文件夹、接收外部输入参数以及理解FTP工作原理等问题。
摘要由CSDN通过智能技术生成

暑假做的唯一一个有意义的项目吧,其实原理很简单。主要是其中学了不少Ubuntu的东西。今天正好没事,整理一下,以便后面查阅。

一、 程序说明。

ftp.py程序说明。

 

程序功能:这个程序主要由三个功能。1.浏览ftp服务器目录。2.随机下载一个文件。3.随机下载多个文件。

1.       浏览ftp服务器目录。

这个功能主要是在登入进ftp服务器后,生成一个随机数,根据随机数,进行判断往哪个目录下索引。如果是根目录,只会向下索引。如果是底层目录,只会向上索引。

2.       随机下载一个文件。

这个功能主要是在登入进ftp服务器后,生成一个随机数,根据随机数,随机下载一个文件。需要注意的是,生成随机数之前,要进行判断。如果没有要下载的文件,就要切换目录,进行下载。

3.       随机多个文件下载

这个功能主要是在登入ftp服务器后,随机下载多个文件。实现原理为,首先进入一个目录下,判断是否有文件下载,如果有文件下载,则下载多个文件,如果没有,则改变目录。完成后改变目录。

 

所需参数:“ip,port,username,passwd,usermodel”。传入参数由一个字符串组成。用逗号进行分割。

 

所需环境:需要搭建好ftp服务器。以及有python环境的系统上运行。

 

注意事项:

1.       下载路径默认为”/home/”。如果程序出错提示为“不能写入”,需要对文件权限进行提升。

2.       在实现用户模式时,程序已经默认多次执行。即每次运行程序时,就会随机多次(至少一次,最多5次)执行,用来模拟用户行为。

3.       ftp服务器搭建详见ftp服务器搭建教程。

 

 

  1 #!/usr/bin/env Python3
  2 # -*- encoding:utf-8 -*-
  3 from ftplib import FTP
  4 from random import randint
  5 import time
  6 import sys
  7 
  8 
  9 
 10 
 11 def ftpconnect(ip, port,  username, passwd):
 12     ftp = FTP()
 13     #ftp.set_debuglevel(2)  # 打开调试级别2,显示详细信息
 14     ftp.connect(ip, port)  # 连接的ftp服务器ip和port
 15     ftp.login(username, passwd)  # 连接的用户名和密码
 16     print(ftp.getwelcome())  # 打印出欢迎信息。
 17     return ftp
 18 
 19 def showdownloadfile(ftp):
 20     #print("当前目录下的文件:文件夹名字:"+ftp.pwd())
 21     mu_dir = gettable(ftp)
 22     #print("当前文件夹: "+ftp.pwd()+"  可供下载的文件:")
 23     behind_name = []
 24     for name in mu_dir:
 25         if mu_dir[name] == "文件":
 26             behind_name.append(name)
 27             #print(name)
 28     return behind_name
 29 
 30 def showfolderfile(ftp):
 31     #print("当前目录下的文件:文件夹名字:"+ftp.pwd())
 32     mu_dir = gettable(ftp)
 33     #print("当前文件夹:  "+ftp.pwd()+"   可供索引的文件夹:")
 34     folder_name = []
 35     for name in mu_dir:
 36         if mu_dir[name] == "文件夹":
 37             folder_name.append(name)
 38             #print(name)
 39     return folder_name
 40 
 41 def
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值