zoukankan      html  css  js  c++  java
  • 020: class, objects and instance: 一个简单的例子,压缩文件中内容的替换

    这个例子是对前面学习的知道的一个简单总结。

    在设计类的时候,并非所有的类都是埋头干活的类,同时也需要有很多类似于管理的类,这样的类的功能就是调用其他的类来共同的完成任务。

    import sys
    import os
    import shutil
    import zipfile
    
    class ZipReplace(object):
        def __init__(self, file_name, search_string, replace_string):
            self.file_name = file_name
            self.search_string = search_string
            self.replace_string = replace_string
            self.temp_directory = "unzipped-{}".format(file_name)
    
        def __full_filename(self, file_name):
            return os.path.join(self.temp_directory, file_name)
        
        def zip_find_replace(self):
            self.unzip_files()
            self.find_replace()
            self.zip_files()
    
        def unzip_files(self):
            os.mkdir(self.temp_directory)
            zip = zipfile.ZipFile(self.file_name)
            try:
                zip.extractall(self.temp_directory)
            finally:
                zip.close()
    
        def find_replace(self):
            for file_name in os.listdir(self.temp_directory):
                with open(self.__full_filename(file_name)) as file:
                    contents = file.read()
    
                contents = contents.replace(self.search_string, self.replace_string)
    
                with open(self.__full_filename(file_name), 'w') as file:
                    file.write(contents)
    
        def zip_files(self):
            file = zipfile.ZipFile(self.file_name, 'w')
    
            for file_name in os.listdir(self.temp_directory):
                file.write(self.__full_filename(file_name), file_name)
            
            shutil.rmtree(self.temp_directory)    
    
    zr = ZipReplace("test.zip", 'hello', 'hello world...')    
    zr.zip_find_replace()                                
  • 相关阅读:
    jQuery中deferred对象的使用(一)
    css中calc()的使用
    网络协议学习笔记1
    iOS: 类目里动态关联对象
    [转载] 2016 app 上线流程
    iOS:集成环信3.0循环掉坑。(学习笔记一)
    iOS 实现条件选择框
    iOS : 定义项目中接口文档
    iOS:消除项目中的警告⚠️
    iOS 一个简洁的条件筛选界面
  • 原文地址:https://www.cnblogs.com/jcsz/p/5164755.html
Copyright © 2011-2022 走看看