首页 > 其他 > 详细

批量解压landsat8/sentinel2原始文件包

时间:2021-09-13 10:14:17      阅读:34      评论:0      收藏:0      [点我收藏+]
import os
import tarfile
import zipfile


def un_landsat8_file(path,out):
    classs1 = os.listdir(path)
    for idx, folder in enumerate(classs1):
        if folder[-7:]==".tar.gz":
            f_name = folder.replace(".tar.gz", "")
            print(f_name)
            outfile = out + "\\" + f_name
            tar = tarfile.open(path + "\\" + folder)  # 打开影像压缩包
            names = tar.getnames()  # 获取影像压缩包里包含的文件名
            for name in names:
                tar.extract(name, path=outfile)  # 开始解压(这里解压的是所有文件,也可以只解压其中的某一个文件,指定文件名就好)
            tar.close()
            print(f_name,"提取完成")


def un_zip_sentinel(file_name,upload_path):
    """unzip zip file"""
    zip_file = zipfile.ZipFile(os.path.join(upload_path,file_name))
    file_name_pre=os.path.basename(file_name).split(.)[0]
    restore_path=os.path.join(upload_path,file_name_pre)
    print(restore_path)

    # if not os.path.exists(restore_path):
    #     os.makedirs(restore_path)
    # for names in zip_file.namelist():
    #     zip_file.extract(names,restore_path)
    # zip_file.close()
    return restore_path


if __name__ == __main__:

    # 网上下的Landsat数据都是压缩包(.tar.gz),因此需调用tarfile包(其他类似的解压缩包也可以)
    path =rF:\algorithm\解压缩\1
    out=rF:\algorithm\解压缩\成果
    classs1 = os.listdir(path)
    for idx, folder in enumerate(classs1):
        print(folder)
        sentinel_path=os.path.join(path,folder)
        un_zip_sentinel(sentinel_path, out)

 

批量解压landsat8/sentinel2原始文件包

原文:https://www.cnblogs.com/suoyike1001/p/15260084.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!