您的位置:首页 > 移动开发 > Objective-C

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

2016-01-27 22:20 441 查看
这个例子是对前面学习的知道的一个简单总结。

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

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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: