码迷,mamicode.com
首页 > 其他好文 > 详细

020: class, objects and instance: 一个简单的例子,压缩文件中内容的替换

时间:2016-01-27 22:57:49      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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()                                

 

020: class, objects and instance: 一个简单的例子,压缩文件中内容的替换

标签:

原文地址:http://www.cnblogs.com/jcsz/p/5164755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!