暑假做的唯一一个有意义的项目吧,其实原理很简单。主要是其中学了不少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