🍞 APScheduler 库

🍞 numpy 库

🍞 pandas 库

对于任何涉及到统计、时间序列以及其他相关技术的数据分析问题,都可以考虑使用 Pandas 库 。

🍞 psutil 库

🍞 pytz 库

对几乎所有涉及到时区的问题,都应该使用 pytz 库。这个包提供了Olson时区数据库, 它是时区信息的事实上的标准,在很多语言和操作系统里面都可以找到。

pytz 库一个主要用途是将 datetime 库创建的简单日期对象本地化。 比如,下面如何表示一个芝加哥时间的示例:

>>> from datetime import datetime
>>> from pytz import timezone
>>> d = datetime(2012, 12, 21, 9, 30, 0)
>>> print(d)
2012-12-21 09:30:00
>>>

>>> # Localize the date for Chicago
>>> central = timezone('US/Central')
>>> loc_d = central.localize(d)
>>> print(loc_d)
2012-12-21 09:30:00-06:00
>>>

🍞 regex 库

在Python中,处理Unicode和正则表达式混合使用时,可以使用 regex 库来增强功能并简化操作。

这是标准库 re 的增强版,提供更全面的 Unicode 支持,包括:

  • 更强大的Unicode属性匹配(如 \p{Script=Han} 匹配所有汉字)。
  • 更好的大小写不敏感匹配(支持Unicode大小写转换)。
  • 模糊匹配(近似字符串匹配)等高级功能75。
import regex
pattern = regex.compile(r'\p{Script=Han}+')  # 匹配所有中文字符
print(pattern.findall("好,世界!"))  # 输出: ['好', '世界']

🍞 requests 库

🍞 serial 库

🎯 与串行端口的数据通信

通过串行端口读写数据,典型场景就是和一些硬件设备打交道(比如一个机器人或传感器)。尽管可以通过使用Python内置的I/O模块来完成这个任务,但对于串行通信最好的选择是使用 pySerial包 。 这个包的使用非常简单,先安装pySerial,使用类似下面这样的代码就能很容易的打开一个串行端口:

import serial
ser = serial.Serial('/dev/tty.usbmodem641', # Device name varies
                    baudrate=9600,
                    bytesize=8,
                    parity='N',
                    stopbits=1)

设备名对于不同的设备和操作系统是不一样的。 比如,在Windows系统上,可以使用0, 1等表示的一个设备来打开通信端口”COM0”和”COM1”。 一旦端口打开,那就可以使用 read(),readline() 和 write() 函数读写数据了。例如:

ser.write(b'G1 X50 Y50\r\n')
resp = ser.readline()

🍞 unicodedata 库

标准化对于任何需要以一致的方式处理Unicode文本的程序都是非常重要的,当处理来自用户输入的字符串而很难去控制编码的时候尤其如此。

>>> s1 = 'Spicy Jalape\u00f1o'
>>> s2 = 'Spicy Jalapen\u0303o'
>>> s1
'Spicy Jalapeño'
>>> s2
'Spicy Jalapeño'
>>> s1 == s2
False
>>> len(s1)
14
>>> len(s2)
15
>>>

>>> import unicodedata
>>> t1 = unicodedata.normalize('NFC', s1)
>>> t2 = unicodedata.normalize('NFC', s2)
>>> t1 == t2
True
>>> print(ascii(t1))
'Spicy Jalape\xf1o'
>>> t3 = unicodedata.normalize('NFD', s1)
>>> t4 = unicodedata.normalize('NFD', s2)
>>> t3 == t4
True
>>> print(ascii(t3))
'Spicy Jalapen\u0303o'
>>>

>>> t1 = unicodedata.normalize('NFD', s1)
>>> ''.join(c for c in t1 if not unicodedata.combining(c))
'Spicy Jalapeno'
>>>

🍞 xml 库