当前位置: 首页 > 知识库问答 >
问题:

使用python库从FTP获取大型文件

乔丁雨
2023-03-14

我需要下载一些大文件(

据我所读,有两种联系。数据和控制通道,其中数据通道似乎工作正常(我可以完全下载文件),但控制通道同时超时。我还了解到ftplib(和其他python ftp库)不适合大文件,可能只支持1GB左右的文件。这里有一个与此主题类似的问题:如何通过ftp(带监控)下载python中的大文件

我当前的代码如下所示:

import ftplib
import tempfile

ftp = ftplib.FTP_TLS()

ftp.connect(host=server, port=port)
ftp.login(user=user, passwd=password)
ftp.prot_p()
ftp.cwd(folder)

for file in ftp.nlst():
    fd, local_filename = tempfile.mkstemp()
    f = open(fd, "wb")
    ftp.retrbinary('RETR %s' % file, callback=f.write, blocksize=8192)
    f.close()

我可以使用它或其他支持大文件的库吗?

共有1个答案

邵兴怀
2023-03-14

如果您遇到标准FTP问题,您可以尝试使用专门设计用于处理此类大文件的不同协议。

存在许多合适的解决方案。Rsync可能是一个很好的开始。

 类似资料:
  • 问题内容: 尝试创建一个简单的插件,该插件仅连接到ftp站点,查找最新文件,然后下载。但是,它没有获取最新文件。 我正在使用org.apache.commons.net.ftp.ftpclient进行所有操作。 这是我的代码 它获取文件列表,然后返回文件,它不是最新文件。还有其他方法可以使用FTPClient比较文件修改日期,或者有人可以向我指出我做错了什么。谢谢。 问题答案: 我将创建一个比较器

  • 我使用Dask读取2.5GB csv文件,Python给了我错误。这是我写的代码: 以下是我从Python得到的错误: dask_df=df1.read_csv('3SPACK_N150_7Ah_压力分布研究_Data_Matrix.csv')) 文件“C:\ProgramData\Anaconda3\lib\site packages\dask\dataframe\io\csv.py”,第645

  • 我们需要一个能够存储大量大型csv文件(1000个文件,每天每个1GB)的系统。 还有一些客户端应该连接到此系统并下载csv文件 系统应该容错和可扩展... 我考虑使用Hadoop集群并在其上运行FTP服务器。。。 Hadoop适合这个项目吗? 如果没有,什么技术是合适的?

  • 问题内容: 我正在尝试使用Python将CSV文件加载到Amazon S3。我需要知道CSV文件的修改时间。我正在使用ftplib将FTP与Python(2.7)连接。 问题答案: MLST或MDTM 虽然可以使用或命令通过FTP检索单个文件的时间戳,但ftplib都不支持。 当然,您可以使用实现自己的或。 有关详细信息,请参阅RFC 3659,尤其是: 3.文件修改时间(MDTM) 7.机器处理

  • 问题内容: 我查看了请求文档,但似乎什么也找不到。如何仅请求标题,以便评估文件大小? 问题答案: 发送HEAD请求: HEAD请求就像GET请求一样,仅下载标头。请注意,由服务器来实际满足您的HEAD请求。某些服务器只会响应GET请求,因此您必须发送GET请求并仅关闭连接,而不下载主体。其他时候,服务器永远不会指定文件的总大小。

  • 问题内容: 我正在使用ftplib连接到ftp站点。我想获取最新上传的文件并下载。我能够连接到ftp服务器并列出文件,我也将它们放在列表中并进行了转换。是否有任何功能/模块可以获取最新日期并从列表中输出整行? 解决: 一个问题,是否可以从字典中检索第一个元素?我在这里所做的是,for循环仅运行一次并退出,从而为我提供了一个很好的第一个排序值,但是我认为以这种方式进行操作不是一个好习惯。 问题答案: