首页
学习
活动
专区
工具
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

    全栈工程师开发手册 (作者:栾鹏) python中ftp操作: ftp=FTP() #设置变量 ftp.set_debuglevel(2) #打开调试级别2,显示详细信息 ftp.connect...这里本机上调试,目标主机也是本机。ftp信息如下表 ? 主机地址192.168.8.102,端口号使用默认21端口,开启了匿名登录。所以代码中登陆ftp账号密码为空。...ftp所需要的库已经集成python系统中 #coding:utf-8 #ftp演示,首先要在本机或远程服务器开启ftp功能 import sys,os,ftplib,socket print("=...s"' % filename) except ftplib.error_perm: return False return True #获取目录下文件或文件夹想详细信息...: print("目录已经存在或无法创建") try:ftp.cwd(dirpath) #重定向到指定路径 except ftplib.error_perm

    86220

    python实现从ftp上下载文件的实例方法

    python从ftp上下载文件的方法: 首先导入ftp模块; 然后使用【chdir】命令切换工作路径; 再使用“self.ftp.nlst()”命令获取目录下的文件; 最后使用“self.ftp.retrbinary.../usr/bin/python # coding=utf-8 import os from ftplib import FTP # 引入ftp模块 class MyFtp: ftp = FTP()...,"wb").write # 以写模式本地打开文件 self.ftp.retrbinary('RETR %s' % os.path.basename(filename),file_handle...download_file(self, localfile, remotefile): if self.is_same_size(localfile, remotefile): debug_print(u'%s 文件大小相同...实现从ftp上下载文件的实例方法的文章就介绍到这了,更多相关python怎么实现从ftp上下载文件内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

    1.5K30

    python ftplib模块

    Python中的ftplib模块 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件 FTP的工作流程及基本操作可参考协议RFC959...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.quit #退出ftp ftp相关命令操作 ftp.cwd(pathname) #设置FTP当前操作的路径 ftp.dir() #显示目录下文件信息 ftp.nlst() #获取目录下的文件...filename.txt",file_handel,bufsize) #上传目标文件 ftp.retrbinary("RETR filename.txt",file_handel,bufsize)#下载

    79720

    实践应用|Python自动化连接FTP批量下载指定文件

    :依据②中文件名及目录循环切换FTP远程目录并下载文件 ⑤处理文件:打开文件并删除前5行 文件第6行行首添加字母,保存时修改文件后缀(格式) 1、数据处理 历史数据日志有多份,存放在同一个文件夹,文件格式是...处理完之后,我们发现文件大小降低为7.9KB,很轻松的感觉有木有~ >>>df = df[df['modetid']>=117 ] >>>df = df[df['usernum']>=10 ] >>>df...中默认安装的ftplib模块,常见的函数列举如下: 参考文档:https://docs.python.org/3/library/ftplib.html  **ftp登录连接** from ftplib...FTP文件 获取远程FTP地址端口及账号密码后,即可进行连接 from ftplib import FTP def ftpConnect():     #实例化一个fto对象     ftp =FTP...,bufsize) ,filename.txt是我们需要下载的文件 下载文件前先以写模式本地打开文件file_handle=open(filename,"wb").write def ftpDownload

    1K20

    太实用了!自己动手写软件——SSH、FTP和SQL server的密码破解

    我们的密码破解工具一共分为如下六个部分,前面四个部分我们都有之前的文章中介绍过了,点击蓝色字体即可跳转查看。...用户图形界面——GUI编程 密码字典获取——Excel文件读取 数据库类——MySQL、Oracle和SQL server 邮件类——IMAP、POP3和SMTP 文件传输类——FTP 运维类——SSH...password=password) print("用户名:%s,密码:%s登录成功\n" % (user, password)) except: print("用户名:%s,密码:%s无法登录成功...FTP登录验证 FTP连接可以直接使用python内置模块——ftplib,连接过程编码如下: import ftplib server_ip = '127.0.0.1' port = 21...user = 'admin' password = 'admin' print("=======破解FTP协议========") ftp = ftplib.FTP() ftp.connect(server_ip

    1.2K20

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

    如果用户需要将文件从自己的计算机上发送到另一台计算机上,可使用FTP上传(upload)或(put)操作,而更多种的情况是用户使用FTP下载(download)或获取(get)操作从FTP服务器上下载文件...(PASSIVE,简称PASV),关于FTP相关内容这里就不做详细数明了,这里将以python语言实现其功能 一 、基于ftp协议 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,...二 、基于sftp协议 Python中可以使用paramiko模块中的sftp登陆远程主机,实现上传和下载功能。 #!...总结: python中这两种协议实现文件的上传与下载需要引入不同的模块,实现起来还是比较简单的,相关模块里的源码也是比较清晰。...因为我需要的是每天定时下载文件,所以是linux配置的定时每天早晨6点执行该python脚本的任务,所以文件名都是用日期命名的。

    15.7K20

    当Excel不够用的时候如何用Python救场?

    尤其是在数据量很大的时候,Excel容易让我们无法使用其他应用程序,而且有些报告需要30分钟甚至几个小时才能完成刷新。是的,Excel喜欢把我们的电脑当人质! 显然需要做点什么。...幸运的是,Python及其操作CSV文件的工具可以帮助我们优化数据处理流程。下面给大家介绍常用的套路。 清理数据 使用Python中的pandas模块,您可以非常轻松和有效地操作和分析数据。...使用Python中的ftplib模块,您可以连接到FTP服务器并将文件下载到计算机中。...下面是一些示例代码: from ftplib import FTP import os # 收集保存为环境变量的凭据 host = os.environ['HOST'] port = int(os.environ...我的例子中,我使用它连接到Netsuite并使用SQL查询提取数据。

    1.3K10

    浅谈Pythonftplib模块1.ftp登陆连接2.FTP相关命令操作3.实例

    工作需要,需要对FTP协议下的各种文件进行上传下载操作,所以了解下Python中的ftplib模块。...Python中默认安装的ftplib模块定义了FTP类,可用来实现简单的ftp客户端,用于上传或下载文件,有需要的可以看过来了。...'pwd': 'uesr1234', 'points_dir': 'comm/cust_point/', 'xsl': 'xsl/dps' } 登录连接 # 引入FTP模块 from ftplib...filename="xsl.txt" # 以写的模式本地打开文件 file_handle=open(filename,"wb").write # 接收服务器上文件并写入本地文件 ftp.retrbinaly...file_handle,bufsize) # 退出ftp ftp.quit() 2.FTP相关命令操作 设置FTP当前操作的路径 ftp.cwd(pathname) 显示目录下所有目录信息 ftp.dir() 获取目录下的文件

    1.5K20

    遇到乱码问题,如何解决?

    之前解决了一个 Python 的 UnicodeEncodeError 问题,比较具有代表性,特此分享一下,希望可以帮到遇到此类问题的朋友。...先来看下 Python 内建的 open 函数签名: 这里的 encoding 参数是指定文件内容的字符编码,而不是文件名的编码,因此我们需要关注 file 这个参数,file 是一个像路径一样的对象...解决方法:ftplib 考虑到了这一点, ftplib.FTP 初始化后可以传入 encoding 参数,来指定目标系统以何种编码保存文件名称。...如下图所示: 2、Windows 下有乱码路径时无法 Windows 里面递归的创建目标路径。...传输文件时可以指定目标路径,路径不存在时需要递归创建,以便存放上传的文件,ftplib 本身只能创建一个目录,需要自行写递归创建,那么创建之前就要先判断目录是否存在,这就需要用到 ftp.retrlines

    1.3K21

    核心编程笔记(17.P

    和FTP 流程: 1.连接到服务器 2.登陆 3.发出服务请求(有可能返回信息) 4.退出 from ftplib import FTP f = FTP('ftp.python.org') f.login...nlst([path[,...]])与dir()类似,但返回一个文件名的列表,而不 是显示这些文件名 retrlines(cmd) [, cb])给定FTP命令(如"RETR filename").用于下载...用于处理文件的 每一行 retrbinary(cmd, cb[, bs=8192[, ra]]) 与retrlines()类似,只是这个指令处理二进 制文件,回调函数cb用于处理每一块(块大小 默认8K)下载的数据.../usr/bin/env python import ftplib import os import socket HOST = 'ftp.mozilla.org' DIRN = 'pub/mozilla.org...包括: 开源MTA: Sendmail Postfix Exim qmail 商业MTA Microsoft Exchange Lotus Notes Domaino Mail Server SMTP是因特网上

    54010

    安防视频结构化图像智能分析系统EasyNVR调用下载录像接口获取mp4无法浏览器播放

    EasyNVR视频图像智能分析平台具备高度集成性和可用性,其中丰富的API接口能够集成或者对接其他平台时自由调用,拓展性强。...image.png 一般大家用到比较多的是登录接口和录像文件下载接口,有用户使用EasyNVR调用分段下载录像接口后,获取的mp4格式文件浏览器播放不出来。...image.png image.png 该用户现场有两个摄像头,两个都是正常录像,其中一个摄像头通过调用分段下载录像接口获取的视频流是可以浏览器正常播放的,而另一个则不能播放,显示黑屏,edge浏览器播放显示无效源...通过和播放器的研发人员沟通后,我们了解到h265格式的mp4文件浏览器端是播放不出来的,因为浏览器无法直接解码h265格式的视频,因此H265并不适用于浏览器播放。...所以本问题当中,我们需要将摄像头的视频编码改为h264之后再进行录像,随后调用接口后获取的视频流在浏览器已经可以正常播放了。

    92730

    python-应用层-网络编程-FTP

    前面描述的基于TCP/UDP协议的网络程序开发,主要是针对传输层协议的底层代码实现 实际操作过程中,更多的情况是直接操作应用层的数据协议的网络程序开发,如文件传输协议FTP,邮件协议SMTP等等 这一部分针对应用层的协议下网络程序的开发做一个深入的处理...FTP文件服务 FTP:File Transfer Protocal 文件传输协议 工作应用层的协议,由Jon Postel和Joyce Reynolds开发并记录在RPC959号文档中 FTP协议主要用于匿名下载文件或者两台计算机之间进行文件的传输工作...FTP协议底层采用的是TCP协议完成的网络数据传输,为了方便两台计算机上的文件正确的进行交互,FTP协议封装了两个套接字完成文件操作,第一个工作21端口的套接字专门用于传输命令控制指令,第二个工作20...FTP网络程序的开发,我们不需要关注服务端的程序,服务端的软件程序开发和文件管理操作可以有大量的现成的工具去操作完成,而FTP如果作为应用软件的一部分功能,客户端程序的操作才是应用软件中最常规的操作 PYTHON...as e: print("文件下载失败...")

    91830

    python模块的常用安装方式

    之前我们讲过一些python的模块,如chardet、pygame,这些模块不包含在python的默认代码中,需要从外部下载并安装。...但大多数模块没有提供这样的安装方式,有些同学没能成功安装而导致无法程序中引入模块。在这里,介绍一下python模块几种常见的安装方法。 1....3. setuptools 使用setuptools可以直接根据模块名称来自动下载安装,不需要自己再去寻找模块的安装文件。不过使用之前,你得先安装setuptools自身。...windows平台的32位python,可以直接下载setuptools的exe文件安装。...PIL - 图形处理 PyXML - 解析和处理XML文件 MySQLdb - 连接MySQL数据库 Tkinter - 图形界面接口,python自带 smtplib - 发送电子邮件 ftplib

    1.1K70

    安防视频结构化图像智能分析系统EasyNVR调用下载录像接口获取mp4无法浏览器播放问题

    EasyNVR视频图像智能分析平台具备高度集成性和可用性,其中丰富的API接口能够集成或者对接其他平台时自由调用,拓展性强。...一般大家用到比较多的是登录接口和录像文件下载接口,有用户使用EasyNVR调用分段下载录像接口后,获取的mp4格式文件浏览器播放不出来。...该用户现场有两个摄像头,两个都是正常录像,其中一个摄像头通过调用分段下载录像接口获取的视频流是可以浏览器正常播放的,而另一个则不能播放,显示黑屏,edge浏览器播放显示无效源。...通过和播放器的研发人员沟通后,我们了解到h265格式的mp4文件浏览器端是播放不出来的,因为浏览器无法直接解码h265格式的视频,因此H265并不适用于浏览器播放。...所以本问题当中,我们需要将摄像头的视频编码改为h264之后再进行录像,随后调用接口后获取的视频流在浏览器已经可以正常播放了。

    78010

    python3 源码编译并配置jupyterhub

    注意事项:需要注意的是, sqlite安装完成之后需要进行重新编译python, 需要注意的是,sqlite安装完成之后需要进行重新编译python 1.下载并源码编译python3 #wget https...install openssl openssl-devel -y 此时就可以/usr/local/python3.4/bin/下面看到编译生成的各个可执行文件了,不过比较好的是,python3以后就默认支持了...import sys;print(sys.path) 先查看python默认加载模块包的路径也可以使用import ftplib;print(ftplib)查看 sys.path.append(‘path...python3中,默认使用pip install是安装不了sqlite3的,因此就需要进行额外下载并进行安装了 import site; site.getsitepackages() 查看当前站点的包路径...如果编译玩python3还是无法加载sqlite: 如果重新编译不能发现sqlite3模块的话,需要在Python-3.4.5/setup.py 进行编辑以下文件 455行.然后进行重新编译python3.4

    2.4K70

    python构建SSH僵尸网络

    构建僵尸网络,主要使用的包为pexpect,Pexpect 是一个用来启动子程序并对其进行自动控制的 Python 模块,它可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互...然而,令人惊 讶的是许多网站提供这类FTP的访问如升级软件,这使得更多的软件获取软件 的合法更新。我们可以利用Pythonftplib模块来构建一个小脚本,用来确 认服务器是否允许匿名登录。...import ftplib def anonLogin(hostname): try: ftp = ftplib.FTP(hostname)...return False host = '192.168.95.179' anonLogin(host) FTP服务器上寻找WEB页面 有了FTP访问权限,我们还要测试服务器是否还提供了WEB访问。...(host) ftp.login(userName, passWord) returnDefault(ftp) 看着这个脆弱的FTP服务器,我们可以看到它有三个WEB页面基目录下。

    70510
    领券