Python 2.7 下载后如何检查.tar.gz存档文件是否损坏?

Python 2.7 下载后如何检查.tar.gz存档文件是否损坏?,python-2.7,download,python-requests,archive,gzip,Python 2.7,Download,Python Requests,Archive,Gzip,我使用Python2.7.8并请求库从USGS.gov网站下载tar.gz档案 数据示例: 有时我的连接被中断,并不是所有的文件都从存档中正确解压缩(但文件并没有完全损坏)。我使用以下代码(其中的一部分)下载数据: import requests import traceback def download_file(url, file_path): # NOTE the stream=True parameter r = requests.get(url, timeout=1

我使用Python2.7.8并请求库从USGS.gov网站下载tar.gz档案

数据示例:

有时我的连接被中断,并不是所有的文件都从存档中正确解压缩(但文件并没有完全损坏)。我使用以下代码(其中的一部分)下载数据:

import requests
import traceback

def download_file(url, file_path):
    # NOTE the stream=True parameter
    r = requests.get(url, timeout=120, stream=True)
    with open(file_path, 'wb') as f:
        for chunk in r.iter_content(chunk_size=1024): 
            if chunk:
                f.write(chunk)    
    return file_path

try:
    download_file(URL, scene_path)    
except:
    traceback.print_exc() 
    if os.path.isfile(scene_path):
        os.remove(scene_path)
        print u'<= DEL'
导入请求
导入回溯
def下载文件(url、文件路径):
#注意stream=True参数
r=requests.get(url,超时=120,流=True)
打开(文件路径“wb”)作为f:
对于r.iter\u内容中的区块(区块大小=1024):
如果区块:
f、 写入(块)
返回文件路径
尝试:
下载\u文件(URL、场景\u路径)
除:
traceback.print_exc()
如果os.path.isfile(场景路径):
移除操作系统(场景路径)

打印您是否担心您开始使用的数据已损坏,或者只关心您正在接收的数据?您有文件的SHA1或md5sum吗?@Bamcclur服务器上的数据没有问题。只是有时候我会收到损坏的文件,在手动重新下载后,它们就正常了。我没有文件的校验和。在我的一些请求中,我看到在响应的标题中有一个
内容配置
。此变量包含一个分号分隔的列表,其中包含一个
size=“value”
。如果连接中断,下载的大小似乎与请求中的大小不匹配。然后,您可以重试下载。您是否担心开始时使用的数据已损坏,或者只关心您正在接收的数据?您有文件的SHA1或md5sum吗?@Bamcclur服务器上的数据没有问题。只是有时候我会收到损坏的文件,在手动重新下载后,它们就正常了。我没有文件的校验和。在我的一些请求中,我看到在响应的标题中有一个
内容配置
。此变量包含一个分号分隔的列表,其中包含一个
size=“value”
。如果连接中断,下载的大小似乎与请求中的大小不匹配。然后您可以重试下载。