亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在python中從zip文件深處提取文件

在python中從zip文件深處提取文件

慕的地8271018 2023-09-05 19:47:56
我正在編寫一個腳本,可以自動從我們從 Sentinel 2B 衛星獲得的 zip 文件中提取數據。我需要從 zip 文件中獲取的文件的路徑如下: zipfile.zip/somefolder.SAFE/GRANULE/main_folder/IMG_DATA/它們都是 .jp2 文件,我需要將它們提取到具有以下結構的另一個路徑: my_path/main_folder/我需要保留 zip 文件中的 main_folder 名稱(它因文件而異)。Ziplist 是 zip 文件路徑的列表for i in zipList:    if not os.path.exists(basePath + '/Raw_data/' + os.path.basename(i)[:-4]):        os.makedirs(basePath + '/Raw_data/' + os.path.basename(i)[:-4])    zipped_file = zipfile.ZipFile(i, 'r')    for file in zipped_file.namelist():        if fnmatch.fnmatch(file, "*.jp2"):            zipped_file.extract(file, basePath + '/Raw_data/' + os.path.basename(i)[:-4])但這保留了 zip 文件的文件結構。我只想要 .jp2 文件/Raw_data/os.path.basename(i)[:-4]
查看完整描述

1 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

我想到了:


for i in zipList:

    folder_path = basePath + '/Raw_data/' + os.path.basename(i)[:-4]

    if not os.path.exists(folder_path):

        os.makedirs(folder_path)

    # print(os.path.basename(i))

    z = zipfile.ZipFile(i, 'r')

    for file in z.namelist():

        if fnmatch.fnmatch(file, "*.jp2") and str(file)[-8:-4] in ["_B02", "_B03", "_B04", "_B08"]:

            target = open(folder_path + '/' + os.path.basename(file), 'wb')

            target.write(z.read(file))

            target.close()

    z.close()

我必須在該位置創建一個新文件,并將 jp2 文件從 zip 文件復制到其中。


查看完整回答
反對 回復 2023-09-05
  • 1 回答
  • 0 關注
  • 271 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號