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()                                
  • 相关阅读:
    Go入门笔记-14 EdgeX读取配置文件
    Go入门笔记-13 使用EdgeX日志输出
    Go入门笔记-12 输出unix时间戳
    Go入门笔记-11 Go 获取Linux系统CPU占用率
    htop使用
    Ubuntu子系统默认使用root登录
    函数参数传递数组
    c 'CRTSCTS' undeclared
    c 数组指针使用
    使用SD卡刷OpenWRT后,调整分区大小
  • 原文地址:https://www.cnblogs.com/jcsz/p/5164755.html
Copyright © 2011-2022 走看看