• 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()                                
  • 相关阅读:
    字符串转换的UnicodeDecodeError—— ‘\xa0’问题
    linux下nginx+uwsgi部署python应用
    字符串转换的UnicodeDecodeError—— ‘\xa0’问题
    python的get和post方式请求详解
    MindManager使用说明
    进入程序员的自由天地
    悦读上品 得乎益友
    C++ 是一门难学易用的语言!
    合上More Exceptional C++的瞬间
    从零开始学ASP.NET
  • 原文地址:https://www.cnblogs.com/jcsz/p/5164755.html
Copyright © 2020-2023  润新知