處理VOT2019數據集


 

import zipfile
import os
class FileInfo():

#處理VOT2019數據集,將其中的壓縮包解壓到相應目錄

    def __init__(self, file_dir):
        self.__file_dir = file_dir

    @property
    def file_dir(self):
        return self.__file_dir

    def un_zip(self, filepath):
        """
        將filepath解壓到指定路徑中
        :param filepath:
        :return:
        """
        zip_file = zipfile.ZipFile(filepath)
        index_num = filepath.rindex('/')
        path = filepath[0:index_num:1]
        print(path)
        try:
            zip_file.extractall(path)  #解壓文件到路徑path
        except:
            print(filepath + '解壓失敗')
            pass
        print(filepath + '解壓完成')
        os.remove(filepath) #刪除解壓的源文件
        zip_file.close()

    def get_all_filespath(self, dir):
        '''
        返回dir下多級目錄下文件的完整路徑
        :param dir:
        :return:
        '''
        filesname = []  #存放文件的完整路徑
        list = os.listdir(dir)  #獲取dir目錄下的所有目錄文件名
        for i in range(0, len(list)):
            path = os.path.join(dir, list[i])   #連接路徑+目錄文件名
            if os.path.isdir(path): #遞歸獲取文件完整的路徑
                filesname.extend(self.get_all_filespath(path))
            if os.path.isfile(path) and (path.find('.zip')>-1): #將.zip壓縮包的完整路徑保存在filesname中
                filesname.append(path)
        return filesname

file_dir = r'/home/jq/Desktop/VOT2019'
file_info = FileInfo(file_dir)

filesname = file_info.get_all_filespath(file_dir)   #獲取壓縮包文件的絕對路徑
for filename in filesname:
    file_info.un_zip(filename)  #解壓每個壓縮包
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM