from urllib.request import urlopen
import time
class WebPage:
def __init__(self, url):
self.url = url
self._content = None
@property
def read_content(self):
if not self._content:
print("Retrieving New Page...")
self._content = urlopen(self.url).read()
return self._content
w = WebPage("https://www.baidu.com/")
start = time.time()
print(w.read_content)
end = time.time()
print(end - start)
#===============================================================
class AverageList(list):
@property
def average(self):
return sum(self) / len(self)
a = AverageList([1,2,3,4,5])
print(a.average)
#======================================================================
#写一个可以在ZIP压缩文件里实现查找和替换操作的程序
#1.解压缩文件
#2.执行查找和替换动作
#3.压缩这些新文件
import sys
import os
import shutil
import zipfile
class ZipReplace:
def __init__(self, zip_filename, search_string, replace_string):
self.zip_filename = zip_filename
self.search_string = search_string
self.replace_string = replace_string
def temp_directory(self):
temp_dir = os.path.splitext(os.path.dirname(self.zip_filename))[0] + "\\unzip"
return temp_dir
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.zip_filename)
try:
zip.extractall(self.temp_directory())
finally:
zip.close()
def find_replace(self):
for filename in os.listdir(self.temp_directory()):
with open(os.path.join(self.temp_directory(),filename)) as fp:
content = fp.read()
content = content.replace(self.search_string,self.replace_string)
with open(os.path.join(self.temp_directory(),filename),"w") as fp:
fp.write(content)
def zip_files(self):
file = zipfile.ZipFile(self.zip_filename,"w")
for filename in os.listdir(self.temp_directory()):
file.write(os.path.join(self.temp_directory(),filename))
#shutil.rmtree(self.temp_directory())
if __name__ == "__main__":
#在命令行中传递实例对象初始化参数
ZipReplace(*sys.argv[1:4]).zip_find_replace()