这个例子是对前面学习的知道的一个简单总结。
在设计类的时候,并非所有的类都是埋头干活的类,同时也需要有很多类似于管理的类,这样的类的功能就是调用其他的类来共同的完成任务。
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()
时间: 2024-10-10 18:11:06