首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python ftplib在下载之前无法获取文件大小?

这是一个关于Python ftplib库的问题。在使用ftplib库下载文件时,如果需要获取文件的大小,可以使用以下方法:

  1. 使用ftplib库的size()方法:
代码语言:python
代码运行次数:0
复制
import ftplib

# 连接FTP服务器
ftp = ftplib.FTP('ftp.example.com', 'username', 'password')

# 获取文件大小
file_size = ftp.size('file_name.ext')

# 下载文件
with open('file_name.ext', 'wb') as f:
    ftp.retrbinary('RETR file_name.ext', f.write)

# 关闭FTP连接
ftp.quit()
  1. 使用ftplib库的dir()方法:
代码语言:python
代码运行次数:0
复制
import ftplib

# 连接FTP服务器
ftp = ftplib.FTP('ftp.example.com', 'username', 'password')

# 获取目录列表
dir_list = ftp.dir()

# 解析目录列表以获取文件大小
for line in dir_list:
    if 'file_name.ext' in line:
        file_size = int(line.split()[3])

# 下载文件
with open('file_name.ext', 'wb') as f:
    ftp.retrbinary('RETR file_name.ext', f.write)

# 关闭FTP连接
ftp.quit()

需要注意的是,这些方法并不能保证在所有FTP服务器上都能正常工作,因为FTP协议并没有规定服务器必须提供文件大小信息。如果以上方法无法获取文件大小,可以考虑使用其他第三方库,如ftputillftp

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • python应用系列教程——python

    ftp=FTP() #设置变量 ftp.set_debuglevel(2) #打开调试级别2,显示详细信息 ftp.connect(“IP”,”port”) #连接的ftp sever和端口 ftp.login(“user”,”password”)#连接的用户名,密码 print ftp.getwelcome() #打印出欢迎信息 ftp.cmd(“xxx/xxx”) #更改远程目录 bufsize=1024 #设置的缓冲区大小 filename=”filename.txt” #需要下载的文件 file_handle=open(filename,”wb”).write #以写模式在本地打开文件 ftp.retrbinaly(“RETR filename.txt”,file_handle,bufsize) #接收服务器上文件并写入本地文件 ftp.set_debuglevel(0) #关闭调试模式 ftp.quit #退出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文件

    02

    基于python实现FTP文件上传与下载操作(ftp&sftp协议)

    前言 FTP(File Transfer Protocol)是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。如果用户需要将文件从自己的计算机上发送到另一台计算机上,可使用FTP上传(upload)或(put)操作,而更多种的情况是用户使用FTP下载(download)或获取(get)操作从FTP服务器上下载文件 在传输文件时我们可能会选择sftp和ftp两种协议中的一种,两者的主要区别在于安全与传输速度,FTP传输数据的过程,他们在不同协议下的默认端口号是不同的,它有两种传输模式:主动传输模式(PORT)和被动传输模式(PASSIVE,简称PASV),关于FTP相关内容这里就不做详细数明了,这里将以python语言实现其功能

    02
    领券