簡體   English   中英

解壓縮並重命名

[英]Unzip and Rename

我已經編寫/拼湊了以下代碼,以編譯鏈接列表並下載鏈接。 這些鏈接以.zip歸檔文件的形式下載,每個歸檔文件都包含一個.tif圖像,該圖像需要提取並命名為與父zip文件夾相同的名稱。 除了解壓縮和重命名下面的zip文件夾部分外,有關腳本的所有內容均正常運行

該腳本仍將執行,但是當您查看輸出時,.tif位於正確的目錄中,但尚未重命名。

什么是使腳本重命名提取的.tif的正確方法?

也歡迎任何其他改進建議

全腳本

import pandas as pd
import urllib
import os
import zipfile

data = pd.read_csv('StateRaster.csv')
links = data.SCAN_URL
file_names = data.API_NUMBER +"_"+ data.TOOL
dir = data.FOLDER +"/"+ data.SECTION2
root='g:/Data/Wells'
n=0
e=0

for link, file_name,dir in zip(links, file_names,dir):
    try:
        u = urllib.request.urlopen(link)
        udata = u.read()
        os.makedirs(os.path.join(root,dir), exist_ok=True)
        f = open(os.path.join(root,dir,file_name+".zip"), "wb+")
        f.write(udata)
        f.close()
        u.close()
        zip_ref = zipfile.ZipFile((os.path.join(root,dir,file_name+".zip")), 'r')
        #for filename in (os.path.join(root,dir,file_name+".zip")):
        zip_ref.extractall((os.path.join(root, dir)))
        for filename in ((os.path.join(root,dir))):
            if filename.endswith(".tif"):
                os.makedirs(os.path.join(root,dir,file_name+".tif"), exist_ok=True)
                os.rename(filename,file_name+".tif")

        zip_ref.close()

        n += 1
        print ('Pass',n,'Fail',e,'Total',n+e)
    except:
        e+=1
        print ('Error-Pass',n,'Fail',e,'Total',n+e)
        print("Done!!!!!")

問題出在

    for filename in ((os.path.join(root,dir))):

無需放置(()) ,並且此行僅在字符上進行迭代。 您需要像這樣的os.walkglob.glob

    for filename in glob.glob(os.path.join(root, dir, "*.tif")):
         print(filename)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM