- 博客(58)
- 收藏
- 关注
原创 Python工具箱系列(五十四)
二维码(Quick Response Code)几乎已经渗透到我们日常生活的每一个角落,它是 1994 年发明的一种矩阵条形码,可以用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形。在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。具有一定的校验功能等。二维码的结构充分保证了它的有效性,所以二维码才能够大行其道,成为应用的主流。
2024-07-09 11:08:50
163
原创 Python工具箱系列(五十三)
事实上,可以从本例出发,将公司的LOGO放在再小一些,旋转后复制多次,就可以形成更复杂的水印效果。水印与散列很类似,是一个单向的过程,水印极难去除,即使网上号称的去码神器其实效果真的一般,而且一些基于AI的也只是“合理”的猜想,不是真正的还原。在文字水印时,必须指定中文字体的位置。图片水印其实是2个图片的融合。水印是一种常见的图片处理需求。当既需要展示,又需要保护知识产权时,就需要使用文字或者图片来打水印。下面的代码展示了文字水印与图片水印的过程。此时文字文印的效果如下图所示。
2024-06-17 16:31:43
169
原创 Python工具箱系列(五十二)
打开华为手机的图库,你会发现已经自动进行人脸识别,相片的归类与聚合等工作,甚至于还可以进行一步根据场景来搜索。事实上,当拿出手机进行拍照的这一刻,很多信息已经记录在案,这就是EXIF信息。下述代码完整演示了这个过程。这里我们需要注意的是,并非所有的照片都能够进行解析,必须是携带exif信息的原始图片。当然像一些社交平台也会专门针对exif进行处理,比如微信,你发在朋友圈的图片会自动压缩,所以是不会暴露信息的。exifgps中,不断的进行判断,是因为图片不一定存在exif,也不一定存在gps的定位信息。
2024-04-28 15:57:36
252
1
原创 Python工具箱系列(五十一)
对图片进行九宫格切割,并且放到微信朋友圈曾经风靡一时。对于python来说,这个也非常简单。运行后会将源图片直接切割成为9个图片文件。将它们上传到微信后,就可以组成九宫格图片了,其效果如下图所示。从效果图中可以看出,如果切割点在头部附近会有一些失真的感觉。所以九宫格这种形式还是适合于二次元图片。
2024-03-29 17:01:40
340
原创 Python工具箱系列(五十)
以下python代码演示了如何将一幅美女图进行多种加工处理,并且汇集在一起,形成一个类似于照片墙的相关操作。在这个照片墙上,每种加工的名称都输出到图片的左上侧。最后一个图是剪切图,小于照片墙预留的空间,所以显得奇怪一些。运行后的效果如下图所示。
2024-03-05 09:08:24
415
原创 Python工具箱系列(四十八)
笔者经常要组织大型文档的汇总(例如标书),此时文档中插入的图片各式各样,缩写时也无从知道图片在整个文档中的顺序,所以对所有图片加题注就是一件非常费时的工作。如果人工调整,非常枯燥费力,此时python就可以大显神威,完成大量的自动化的工作,最后再辅以少量的人工即可。以下代码显示了对docx中的图片与表格进行调整的技巧。其中-f选项表示处理文档中的图片,-t选项表示处理文档中的表格。当大型docx文档中的图片数以千百计时,上述代码能够节省大量的时间精力,值得花些时间调整。上述代码的用例如下。
2024-01-18 10:59:26
364
原创 Python工具箱系列(四十七)
这份标准引发了全球政府的关注,推动了文档标准化的进程。由于存在多人编辑的可能性,经常一个微小更改,导致整个DOCX的版面出现混乱的现象,此时python就大有用武之地了。微软最近几年,积极投身开源运动,不仅购买了github震惊世界,还在自家操作操作系统上实现了WSL,与Linux实现了一家亲。之所以微软如此大手笔,原因之一就是微软的Office贡献了大把的现金,简直就是印钞机。python win32com的能力远超python-docx,但操作方法与思路类似于VBA,完全不是python的风格。
2024-01-05 11:30:17
371
原创 Python工具箱系列(四十六)
PDF(Portable Document Format)是一种便携文档格式,它基于PostScripty这种脚本语言。
2023-11-24 10:30:17
197
原创 Python工具箱系列(四十二)
rar是广受好评,使用广泛的压缩格式,开发者为尤金·罗谢尔(俄语:Евгений Лазаревич Рошал,拉丁转写:Yevgeny Lazarevich Roshal),RAR的全名是“Roshal ARchive”,即“罗谢尔的归档”之意。尤其是winrar一度成为windows上的必备软件。
2023-09-11 15:54:25
115
原创 Python工具箱系列(四十一)
前文的代码示例了使用gzip对单个文件进行压缩。本文示例使用更通用的zipfile来批量压缩文件。zipfile也是python内置的库,使用起来非常方便。
2023-08-28 17:02:02
1277
原创 Python工具箱系列(四十)
这是python提供的压缩模块,便于用户对数据、文件进行压缩。功能类似于 GNU 应用程序gzip和gunzip。以下代码压缩一段字节流。
2023-08-22 15:00:13
133
原创 Python工具箱系列(三十八)
上文介绍将类的属性值保存到二进制文件的基本操作。在实际中,还有可能保存文本信息。例如,传感器可能还会有自己所在区域的信息。此时,对于二进制文件的读写提出了挑战。如何才能够在读取时,知道所读的字节是整数、浮点数而不是字符呢?
2023-07-13 10:37:36
80
原创 Python工具箱系列(三十七)
python比较擅长与文本相关的操作。但现实世界中,对于非文本消息的处理也很普遍。例如:◆通过有线、无线传递传感器获得的测量数据。◆卫星通过电磁波发送测量数据。◆数据中心的数万台服务器发送当前CPU的占用率信息、内存占用量等众多指标数据。
2023-06-26 10:28:53
3326
原创 Python工具箱系列(三十六)
Docker提供了基于镜像的运行环境,可以将操作系统、应用程序以及相关依赖打包,为使用者提供完整的使用体验,因此一经推出大获好评,迅速成为主流的软件开发技术之一。
2023-06-20 16:57:58
69
原创 Python工具箱系列(三十四)
SQLAlchemy是著名的ORM(Object Relational Mapping-对象关系映射)框架。其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来。对许多语言(例如JAVA/PYTHON)来说就是定义一个对象,并且这个对象对应着一张数据库的表。而这个对象的实例,就对应着表中的一条记录。
2023-06-12 10:53:27
57
原创 Python工具箱系列(三十三)
TimeScaleDB已经将数据按30分钟来聚合分析。当然,改成任意时间也是可以的,例如,可以改成5秒分析一次也可以,生成结果的时间也非常快。
2023-05-29 11:20:05
91
原创 Python工具箱系列(三十二)
Elasticsearch是一个基于Lucene的搜索引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful 的API接口。
2023-05-26 10:25:29
49
原创 Python工具箱系列(三十一)
Neo4j是一个高性能的开源的,使用Java语言实现的NoSQL图数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。
2023-05-15 15:01:55
184
1
原创 Python工具箱系列(三十)
MySQL的口号是“世界上最流行的开源关系型数据库”,而PostgreSQL的Slogan则是“世界上最先进的开源关系型数据库(PostgreSQL: The World's Most Advanced Open Source Relational Database)”,一看这就是一对老冤家了。
2023-05-08 09:46:33
126
原创 Python工具箱系列(二十九)
ongoDB号称文档数据库,是目前发展迅速的NoSQL数据库。它由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
2023-03-27 15:40:42
61
原创 Python工具箱系列(二十八)
Access也是微软Office套餐中的经典产品。虽然在许多人眼里,Access已经是上古时代的产品,但实际上它一直深受好评,并且稳定发展。之所以在许多IT人士眼里,Access不值一提的主要原因恰恰也是它深受非专业人士喜欢的原因:专供非IT人士自用的数据库。
2023-03-23 17:13:23
46
原创 Python工具箱系列(二十七)
Excel是微软出品的办公神器,大部分读者相信或多或少都用过。其自带的函数丰富,可以进行复杂的数据运算、分析以及可视化的输出。到目前为止没有出现可以望其项背的竞品,大部分竞品不是在模仿的路上,就是在失败的路上。
2023-03-20 11:09:10
50
原创 Python工具箱系列(二十六)
ClickHouse(Click Stream,Data WareHouse)是俄罗斯的 Yandex于2016年开源的用于在线分析处理查询(OLAP:Online Analytical Processing)MPP架构的列式存储数据库(DBMS:Database Management System),能够使用 SQL 查询实时生成分析数据报告。特别值得称道的是Clickhouse没有走hadoop生态,采用 Local attached storage 作为存储,而hadoop目前已经发展的臃肿不堪了。
2023-02-24 10:04:52
110
原创 Python工具箱系列(二十五)
Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
2023-02-24 09:40:27
61
原创 Python工具箱系列(二十四)
不管多少人黑微软,微软出品的大多数产品都能够深入人心,成为精品。在数据库领域,微软为专业人士提供SQL Server(简称mssql)。为日常办公人士提供Access与Excel这两款数据存储与分析的神器。
2023-02-23 11:41:56
48
原创 Python工具箱系列(二十三)
在新版本的pandas中,上述代码会引起警告,建议改成SQLAlchemy connectable(engine/connection),后续代码将引入这种升级的连接方式。
2023-02-23 11:22:46
70
原创 Python工具箱系列(二十二)
互联网世界里最流行的开源关系型数据库之一就是MySQL/MariaDB了,由于高度的相似,故而直接使用mysql统一指称。
2023-02-14 10:05:06
66
原创 Python工具箱系列(二十一)
为了方便准备试验用的数据,建议使用Faker这个库来模拟。Faker是一个Python软件包,可生成伪造数据。无论是需要引导数据库,创建美观的XML文档,填充持久性以进行压力测试,还是匿名化来自生产服务的数据,Faker都能完美实现。
2023-02-06 14:44:01
71
原创 Python工具箱系列(二十)
数据库操作应是所有合格程序员的基本功,写的一手好SQL对于数据分析师而言更是安身立命之本。大部分软件开发人员使用的数据库都是MySql/MariaDB,毕竟LAMP(linux+apache+mysql+php)曾经风靡一时。
2023-02-06 14:35:23
87
原创 Python工具箱系列(十九)
密码学在互联网应用的四个目标:机密性、完整性、身份验证、防抵赖。到目前为止,我们讨论的技术中,其中防抵赖的目标并没有达到。
2023-01-09 15:24:14
74
原创 通过持续交付提升发布效率
前期我们提到,在研发过程中,可能由于迭代变化或需求调整等等原因会导致团队欠很多技术债,从而导致随着项目的运行,技术债务越积越多,导致给用户交付越来越慢,交付的软件质量越来越差,最终不可控,拖延整体交付进度,系统不可控等很多问题。在实际研发工作过程中,我们基于一些工程学的方法,借助一些工具与方法,结合科学的流程,能够对降低技术负债起到一定的作用。
2023-01-04 15:12:15
152
原创 浅谈研发实践的技术债与效能提升
在软件研发过程中,往往随着为了快速满足业务要求的压力,用户需求的变更,软件代码的增多,以及版本的迭代,团队成员的变化等等因素,导致一个软件项目随着时间推移,欠的技术债会越积越多,用户使用容易出错,部署流程也变得复杂。
2023-01-03 16:06:03
132
原创 Python工具箱系列(十八)
非对称加解密应用广泛,它的存在是致力于解决密钥通过公共信道传输这一经典难题。对称加密有一个天然的缺点,就是加密方和解密方都要持有同样的密钥,而这个密钥在传递过程中有可能会被截获,从而使加解密失效。难不成还要为密钥的传输再做一次加密?这样不就陷入了死循环?或许有人在想,密钥即使被盗取,不还有加密算法保证信息安全吗?但任何算法最终都会被破译,所以不能依赖算法的复杂度来保证安全。
2022-12-12 16:45:03
116
原创 Python工具箱系列(十七)
很多软件工程师都认为MD5是一种加密算法,然而这种观点是不对的。作为一个 1992 年第一次被公开的算法,到今天为止已经被发现了一些致命的漏洞。本文讨论MD5在密码保存方面的一些问题。
2022-12-06 09:34:44
231
原创 Python工具箱系列(十六)
前面介绍了对称加密算法,本文将介绍密码学中另一类重要应用:消息摘要(Digest)什么是消息摘要?简单的定义是:对一份数据,进行一个单向的Hash函数,生成一个固定长度的Hash值,这个值就是这份数据的摘要,也称为指纹。
2022-12-05 17:39:15
69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人