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

无法用Python-Sentinel卫星数据解压缩下载的文件

梅飞龙
2023-03-14

我拉不开一个拉链。从哥白尼开放存取中心下载的zip文件。我检索文件并尝试使用以下Python脚本解压缩它:

from sentinelsat.sentinel import SentinelAPI
import zipfile

user = 's5pguest' 
password = 's5pguest' 

api = SentinelAPI(user, password, 'https://s5phub.copernicus.eu/dhus')

api.download("cb078cce-ed6e-46a7-a614-e13830b2a74a")

# The file is succesfully downloaded

zip_ref = zipfile.ZipFile("S5P_NRTI_L2__CO_____20191001T123303_20191001T123803_10188_01_010302_20191001T131513.zip", 'r')
zip_ref.extractall()
zip_ref.close()

文件成功下载,但当它试图解压缩我得到:

BadZipFile                                Traceback (most recent call last)
<ipython-input-3-45c213a35459> in <module>
      9 api.download("cb078cce-ed6e-46a7-a614-e13830b2a74a")
     10 
---> 11 zip_ref = zipfile.ZipFile("S5P_NRTI_L2__CO_____20191001T123303_20191001T123803_10188_01_010302_20191001T131513.zip", 'r')
     12 zip_ref.extractall()
     13 zip_ref.close()

~/anaconda3/lib/python3.6/zipfile.py in __init__(self, file, mode, compression, allowZip64)
   1129         try:
   1130             if mode == 'r':
-> 1131                 self._RealGetContents()
   1132             elif mode in ('w', 'x'):
   1133                 # set the modified flag so central directory gets written

~/anaconda3/lib/python3.6/zipfile.py in _RealGetContents(self)
   1196             raise BadZipFile("File is not a zip file")
   1197         if not endrec:
-> 1198             raise BadZipFile("File is not a zip file")
   1199         if self.debug > 1:
   1200             print(endrec)

BadZipFile: File is not a zip file

如果我尝试使用unzip从终端解压缩此文件,我会得到:

End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of S5P_NRTI_L2__CO_____20191001T123303_20191001T123803_10188_01_010302_20191001T131513.zip or
        S5P_NRTI_L2__CO_____20191001T123303_20191001T123803_10188_01_010302_20191001T131513.zip.zip, and cannot find S5P_NRTI_L2__CO_____20191001T123303_20191001T123803_10188_01_010302_20191001T131513.zip.ZIP, period.

如果我尝试使用7zip,我会得到:

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=it_IT.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)

Processing archive: S5P_NRTI_L2__CO_____20191004T113803_20191004T114303_10230_01_010302_20191004T122457.zip

Error: Can not open file as archive

似乎文件已损坏,但如果我尝试下载其他文件的错误仍然存在。我也尝试过用“doc.zip”这样简单一点的名字来改,都没有成功。我被卡住了,有什么想法吗?

我在遵循这个教程https://github.com/acgeospatial/Satellite_Imagery_Python/blob/master/SentinelSat_Demo.ipynb

共有2个答案

凌远
2023-03-14

有一个错误:https://github.com/sentinelsat/sentinelsat/issues/270该文件具有不正确的名称。邮政分机。如果我手动将扩展名从更改为。直截了当地说。nc并尝试用查看器脚本打开它,它可以工作。我想知道我链接的教程如何工作。

刘元青
2023-03-14

我想你的文件可能不是zip文件。转到该文件属性并检查其是否正确。zip格式与否。

我还想提一下,我无法打开你提到的存储库。

 类似资料:
  • 常用压缩包—解压—令整理 Linux 后缀为 .war 格式的文件(一般用在部署 Tomcat 项目的时候) 命令:unzip -oq XXXXXX.war -d ROOT 如果没有 ROOT 目录会自动创建 ROOT 目录。 Linux 后缀为 .tar.gz 格式的文件-解压 命令:tar zxvf XXXXXX.tar.gz Linux 后缀为 .bz2 格式的文件-解压 命令:bzip2

  • 问题内容: 我想使用urllib下载文件,并在保存之前对文件进行解压缩。 这就是我现在所拥有的: 最终将写入空文件。我该如何实现自己的追求? 更新的答案: 问题答案: 在写完之后,但要传递给之前,您需要寻找到开始的地方。否则它将被模块从头读取,并显示为空文件。见下文:

  • 本文向大家介绍java多文件压缩下载的解决方法,包括了java多文件压缩下载的解决方法的使用技巧和注意事项,需要的朋友参考一下 Java多文件压缩下载解决方案,供大家参考,具体内容如下 需求: 会员运营平台经过改版后页面增加了许多全部下载链接,上周上线比较仓促,全部下载是一个直接下载ZIP压缩文件的链接,每个ZIP压缩文件都是由公司运营人员将页面需要下载的文件全部压缩成一个ZIP压缩文件,然后通过

  • 本文向大家介绍Python压缩解压缩zip文件及破解zip文件密码的方法,包括了Python压缩解压缩zip文件及破解zip文件密码的方法的使用技巧和注意事项,需要的朋友参考一下 python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。 例如,在py脚本所在目录中,有如下文件: 将 readability 目录中的文件压缩到脚本所在目录的 readability.zip

  • 我正在使用Julia的ZipFile包来提取和处理csv文件。没问题,但是当我遇到zip文件中的zip文件时,我也想处理它,但是遇到了一个错误。 Julia ZipFile文档如下:https://zipfilejl.readthedocs.io/en/latest/ 对如何做到这一点有什么想法吗?

  • 本文向大家介绍详解Python 解压缩文件,包括了详解Python 解压缩文件的使用技巧和注意事项,需要的朋友参考一下 zipfile模块及相关方法介绍: 1 压缩 1.1 创建zipfile对象 zipfile.ZipFile(file, mode='r', compression=0, allowZip64=True, compresslevel=None) 创建Zipfile对象,主要参数: