❶ 用python实现FTP功能
开发环境:
1、操作系统: Windows 10 X64
2、Pycharm 2020.2.1
新建项目后,创建两个包 ftp_client与ftp_server,分别代表客户端与服务端。
该项目的完成主要借助了python提供的socketserver库来进行连接。
本项目实现了客户端对于服务端D://文件夹的增加文件,删除文件,修改文件功能。分别以put,delete,modify表示。
对于client,实现了最基础的交互功能,用户可以用如put test.txt等命令来实现功能。修改文件,用户首先输入modify z.txt 命令,z.txt是D://文件夹中已经存在的文件,再根据提示,输入想修改的内容即可修改成功。
在这一模块中,将重点介绍我在实现项目的过程中遇到的问题。
1、bytes与str的转换,传输以字节流进行,但是输出部分内容要以str形式,注意转换
2、熟悉python的语法
3、熟悉文件相关操作
4、考虑传输文件过大的情况
该问题不影响项目的正常使用,但未找到较好的解决办法
❷ 如何在Python中使用FTP
from ftplip import FTP # 首先要引入 ftplib 这个库
# 接着,这是我自定义的几个用于操作 ftp 的函数,def 后面跟的是自定义函数名,函数体内FTP 相关的语句和函数来自上面 import 那个包,你自己体会吧:
# 初始化 FTP 连接
def ftp_open(HOST,PORT,USERNAME,PASSWORD):
ftp=FTP()
ftp.set_debuglevel(2)
ftp.connect(host=HOST,port=PORT)
ftp.login(USERNAME,PASSWORD)
return ftp
# 关闭 FTP 连接
def ftp_close(ftp):
ftp.set_debuglevel(0)
ftp.quit()
# 文件上传函数,filename 可以是windows 格式包含全路径的文件
def ftp_up(ftp,filename):
#print(ftp.getwelcome())
#ftp.cwd('xxx/www')
file_handler=open(filename,'rb')
ftp.storbinary('STOR %s' % os.path.basename(filename),file_handler)
file_handler.close()
print('FTP up OK.')
# 文件下载函数,filename 可以是windows 格式包含全路径的文件
def ftp_down(ftp,filename):
#print(ftp.getwelcome())
#ftp.cwd('xxx/www')
file_handler=open(filename,'wb')
ftp.retrbinary('RETR %s' % os.path.basename(filename),file_handler)
file_handler.close()
print('FTP down OK.')
❸ python 检测FTP目录是否为空
ftp相关命令操作
ftp.cwd(pathname) #设置FTP当前操作的路径
ftp.dir() #显示目录下文件信息
ftp.nlst() #获取目录下的文件
ftp.mkd(pathname) #新建远程目录
ftp.pwd() #返回当前所在位置
ftp.rmd(dirname) #删除远程目录
ftp.delete(filename) #删除远程文件
ftp.rename(fromname, toname)#将fromname修改名称为toname。
ftp.storbinaly("STOR filename.txt",file_handel,bufsize) #上传目标文件
ftp.retrbinary("RETR filename.txt",file_handel,bufsize)#下载FTP文件
❹ python查看FTP是否能连接成功的方法
如果没有正常打开,read_* 会抛出 EOFError, write 会抛出 socket.error
所以,标准的做法是把后面有read/write的部分统统放在一个 try 语句里,然后捕获 EOFError 和 socket.error
❺ python查看FTP是否能连接成功的方法
#!/usr/local/bin/python
#-*- coding: UTF-8 -*-
####################################################################
# python 查看FTP是否能连接成功
####################################################################
#import ftplib
##f = ftplib.FTP('192.168.100.214')
##f.login('GDATA_MEM','123456')
##ftplib.set_debuglevel(2) #打开调试级别2,显示详细信息
#data=ftplib.FTP('127.0.0.1','admin','123456')
#print data
from ftplib import FTP
def ftp_open(host='',user='',passwd=''): #打开FTP
try:
ftp=FTP()
) #打开调试级别2,显示详细信息
) #连接
data=ftp.login(user,passwd) #登录,如果匿名登录则用空串代替即可
print () #欢迎词
#print data
return 1
except:
return 0
if __name__=='__main__':
if ftp_open('127.0.0.1','admin','1234561'): #打开FTP
print "打开FTP成功"
else:
print "打开FTP失败"
❻ Python-高级-搭建FTP Server
共享文件夹或者文件除了上一篇文章中所说的Http方式,还有FTP方式,即搭建一个FTP服务器,共享文件夹,让别人访问。
Python并没有内置一个FTP服务器,所以需要第三方模块的支持。可以使用pyftpdlib,其官网上有详细的介绍。
在命令行输入下面的语句进行安装:
在选定目录的命令行下输入下面的命令即可将该目录共享出去。
其默认的端口是21,可以修改成其他的端口。
启动后,可以在浏览器中输入 ftp://localhost:21 即可查看当前文件夹下的文件。
❼ python ftplib监控文件修改时间
显示的是修改时间还是创建时间?重新创建一个文件,然后稍停一下修改之,看显示的是哪个。
❽ Python,第一次运行从FTP下载目录下所有文件,之后运行先检测FTP上文件是否更新,有,则只下载更新的文件
直接使用ftplib就可以实现,其中有一个nlst功能用于查询目录,cwd用于改变目录,还有一个size功能。你这边只需要保留一个目录的镜像。如果发现有目录差异,或者是文件大小发生变更,就用retrbinary进行文件同步就可以。
另外这样的ftp自动同步软件很多年前就有,现在很成熟。不用重新开发。