Python 库大全(下),熟知这些库,你到大佬级别就不远了
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
本文章来自腾讯云 作者:Python知识大全
想要学习Python?有问题得不到第一时间解决?来看看这里“1039649593”满足你的需求,资料都已经上传至文件中,可以自行下载!还有海量最新2020python学习资料。
点击查看
模板类的子类支持自定义设置占位符。例如,照片浏览器的批量重命名实用程序可以选择百分号作为占位符,当前日期,图像序列号或文件格式都可以这样做:
>>> import time, os.path >>> photofiles = [\'img_1074.jpg\', \'img_1076.jpg\', \'img_1077.jpg\'] >>> class BatchRename(Template): ... delimiter = \'%\' >>> fmt = input(\'Enter rename style (%d-date %n-seqnum %f-format): \') Enter rename style (%d-date %n-seqnum %f-format): Ashley_%n%f >>> t = BatchRename(fmt) >>> date = time.strftime(\'%d%b%y\') >>> for i, filename in enumerate(photofiles): ... base, ext = os.path.splitext(filename) ... newname = t.substitute(d=date, n=i, f=ext) ... print(\'{0} --> {1}\'.format(filename, newname)) img_1074.jpg --> Ashley_0.jpg img_1076.jpg --> Ashley_1.jpg img_1077.jpg --> Ashley_2.jpg
模板的另一个应用是将应用程序的逻辑和输出格式进行分离。这就使得通过自定义模板替换 XML 文件,纯文本文件,HTML web 文件成为了可能。
Python 自动进行内存管理(对大多数的对象进行引用计数和垃圾回收 ------ 垃圾回收 ------ 以循环利用)在最后一个引用消失后,内存会很快释放。
这个工作方式对大多数应用程序工作良好,但是偶尔会需要跟踪对象来做一些事。不幸的是,仅仅为跟踪它们创建引用也会使其长期存在。weakref 模块提供了不用创建引用的跟踪对象工具,一旦对象不再存在,它自动从弱引用表上删除并触发回调。典型的应用包括捕获难以构造的对象:
>>> import weakref, gc >>> class A: ... def __init__(self, value): ... self.value = value ... def __repr__(self): ... return str(self.value) ... >>> a = A(10) # 创建一个应用 >>> d = weakref.WeakValueDictionary() >>> d[\'primary\'] = a >>> d[\'primary\'] # 如果对象仍然是活动的,则获取它 10 >>> del a # 删除一个引用 >>> gc.collect() # 立即运行垃圾收集 0 >>> d[\'primary\'] # 条目被自动删除 Traceback (most recent call last): File "<stdin>", line 1, in <module> d[\'primary\'] # 条目被自动删除 File "C:/python37/lib/weakref.py", line 46, in __getitem__ o = self.data[key]() KeyError: \'primary\'