• 人生如棋,落子便无悔
  • 天生带来允许,文化造成封闭
  • 话说出口前,你是它的主人,说出口之后,就是它的奴隶
  • 许多今日之心心念念,无非是来年之付诸一笑。
  • 愿你在所得少于付出时,不会终日愤愤;愿你在多得超过付出时,不必终日惶恐。
  • 与人争,无论时力还是理,终有不足处、输人处,一生一世都难得圆满。
  • 天下风俗,各有其理。

Python基础练习+实践代码

Python中的代码都是在3.6+上实现的,代码基础部分来自《Python编程快速上手 让繁琐工作自动化》和《learning python》,实践部分是根据工作在特定环境下需要写的。

Python 不可不知的 Socket 通信

Socket API 是用来通过网络传递信息的,也为进程间通信提供一种形式。最常见的 socket 程序就是 client-server 应用程序,下面在同一主机上进程之间进行通信。首先,了解 socket 的 server 端和 client 端 api。Socket APIPython 的 socket 模块提供了 socket api 的接口。主要的方法:socket()bind()listen()accept()connect()connect_ex()send()recv()close()pyth......

Python格式化字符串新语法:f-strings

从Python3.6开始,引入了一个新的格式化字符串方式:f-strings。它与之前的格式化方法相比,更具可读性,代码更简洁,不易出错,并且速度更快。python之前的格式化字符串方式在python3.6之前,主要有两种方式格式化字符串:%-formatting 和 str.format()。%-formatting这是python最开始内置的格式化方式,但现在它已不被官方推荐使用,因为它容易引发错误。>>> name = "zh" >>> "Hello, %s" %......

Python Timer:三种监控你程序运行时间的方式

很多开发者知道Python是一个开发效率很高的编程语言,纯Python程序对比其它编译型语言如:C、Rust、或Java可能运行很慢。通过这篇教程,你将看到如何使用Python timer去监控你程序运行的速度。Python Timers首先,看一下本篇教程中会使用到的代码。随后你将添加Python Timer到程序中去监控它们的性能。你也将看到测量运行时间的一些简单方式。Python Timer Functions如果你看过Python内置的time模块,那么你应该知道测量时间的一些方法:monotoni......

Python 日志模块

logging in pythonLogging是程序员非常有用的工具,它可以帮助你理解程序运行的流程,也可以存储信息,如:user信息或访问者的IP地址等。如果一个错误发生,它可以提供比堆栈追踪更多的信息,告诉你程序在到达错误行代码前程序的状态。在对的位置记录有用的数据,你不仅可以更容易debug errrors,还可以分析程序的性能问题。python的标准库提供了logging系统,所以可以在程序中快速使用logging。python中logging模块python中日志记录模块是一个易于使用且功能强大......

Gunicorn Flask中使用项目名或给URL加固定前缀

Flask中URL地址匹配是通过装饰器完成:@app.route('/')现在需要给所有URL加上项目名称或前缀:@app.route('/project') # or @app.route('/prefix/abc')将项目名称或前缀放在app全局变量中,每个URL都拼接当然可以,但有更方便的方式:SCRIPT_NAME="/xs" gunicorn -w 1 -b 127.0.0.1:8080 app:appSCRIPT_NAME是gunicorn支持的环境变量,将Flask项目部署在gunicor......

练习:从一组Zip Codes码中匹配指定Zip Code码

说明Zip Code码是5位数字编码需求从下面10个Zip codes中获取以44开头的Zip Code码。03824531449411615213441829505344272752010217443235注意2445644132上面是2个Zip Code码:24456 和 44132。所以匹配结果是 44132。44564是错误匹配技巧保证Zip Code都是5的倍数程序def main():     # 44开头的编码(ZIP Codes是5位数编码)   &nbsp......

匹配邮箱和网站地址并添加锚点

下面程序可以批量为文件中邮箱地址和网站地址添加锚点,方便使用URL访问。def main():     s = 'This is my email: zhanheng@gmail.com'     pattern = re.compile(r'\b(\w+@\w+\.(?:com|org|net))\b')     m = re.findall(pattern, s)     print(m)   &nb......

环视匹配的实例程序补充

下面是对上一章环视匹配书面数字程序的补充。import re def main(): s1 = 'The population of 1234567890 is growing' pattern = r'(?<=\d)(?=(\d{3})+\b)' ns = re.sub(pattern, ',', s1) print(ns) s2 = 'The population of 1234567890s is growing' pat......

正则表达式系列(六):环视匹配 - 只匹配位置,不匹配元素

环视匹配只匹配位置,不匹配元素。只匹配位置,不匹配元素?什么意思呢?比如:s = "1abc"\d可以匹配元素1。而现在我想匹配元素1和元素a之间的位置。这就是环视的作用。数字书面写法接下来看个例子:我们有时会将数字书写成带,号的表达形式。数字:123456789书面写法:123,456,789很明显可以看出在两个位置添加了,号。我们要从一个字符串中找到位置,环视就派上用场了。现在确定,要实现这个功能就是在找到正确的位置,然后用,号替换。环视正则表示先看下环视的正则表达式。环视的用法很固定,就四种方式:?=......

将Oracle表数据导到MySQL工具

项目的数据库是Oracle11g,现在需要去Oracle转到MySQL。测试了好几个工具,下面这个工具是可以直接一次性成功的。SQLines Data配置项:注意:这个工具只能导入表结构和表数据,触发器和视图是不能导入的,需要自己手动转换。......
1 2 3 ... 13