从 FTP 服务器上的 Zip 解压 csv 文件

Posted

技术标签:

【中文标题】从 FTP 服务器上的 Zip 解压 csv 文件【英文标题】:Unzip csv file from Zip on ftp server 【发布时间】:2016-12-09 17:41:41 【问题描述】:

我想登录 ftp 服务器(不是公共 url)并下载 csv 文件,该文件位于 zip 文件中,然后将其保存到特定目录:

#log in OK

# this is the zip file I want to download
fpath = strDate + ".zip"

#set where to save file
ExtDir = "A:\\LOCAL\\DIREC\\TORY\\"""
ExtDir = ExtDir + strdate + "\\"
ExtFile = ExtDir + "Download.zip"

#download files
#use zipfile.ZipFile as alternative method to open(ExtFile, 'w')
with zipfile.ZipFile(ExtFile,'w') as outzip:
ftp.retrbinary('RETR %s' % fpath , outzip.write)
outzip.close

我收到此错误

文件“C:\Program Files (x86)\Python 2.7\lib\ftplib.py”,第 419 行,在 retrbinary 回调(数据)中 文件“C:\Program Files (x86)\Python 2.7\lib\zipfile.py”,第 1123 行,写入 st = os.stat(filename) TypeError: stat() 参数 1 必须是没有空字节的编码字符串,而不是 str

【问题讨论】:

你可以试试open(ExtFile, 'wb') 吗?见***.com/a/2665873 它只是给我一个错误“IOError:[Errno 2]没有这样的文件或目录”因为这个'wb'不会生成文件。如果我使用 open(ExtFile, 'w') 然后关闭它,我会创建一个 zip 文件但我无法打开它。 【参考方案1】:

固定使用:

ftp.retrlines('RETR %s' % fpath ,lambda s, w=outzip.write: w(s+"\n"))

【讨论】:

以上是关于从 FTP 服务器上的 Zip 解压 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

ABAP,解析FTP服务器上的CSV文件

java实现读取ftp服务器上的csv文件

Linux下解压超过4G的zip文件

怎么用PuTTY工具在Linux系统下把压缩文件解压到指定目录文件夹下?怎么写语句?

突破PHP免费空间文件格式上传限制-FTP传zip,PHP解压zip文件 - 比单文件管理器更好用

突破PHP免费空间文件格式上传限制-FTP传zip,PHP解压zip文件 - 比单文件管理器更好用