一些Python小技巧

datetime.datetime.astimezone(tz=None) 返回一个使用新时区地方时的 datetime 对象。 from datetime import datetime, timezone, timedelta cst_zone = timezone(timedelta(hours=8)) cst_dt = datetime(2018, 12, 20, 8, 0, 0,...

PyYAML:YAML格式Python处理库

PyYAML 是一个用于解析和生成 YAML 格式的 Python 库。 PyYAML 相比 json,不仅能够解析数据,也能解析 Python 对象(非 YAML 标准语法)。 本文基于 PyYAML 3.13 版本。 QuickStart 安装纯 Python 实现版本 pipenv install pyyaml PyYAML 还有一个依赖 LibYAML 的版本,处理起来比纯...

RQ:轻量级Python任务队列

RQ 是一个基于 Redis 的轻量级任务队列,依赖 Redis >= 2.7.0。RQ 将任务、执行结果 pickle 序列化后存储于 Redis 当中,在较小规模的应用中可以替代 Celery 执行异步任务。 另外我觉得比较好的一点是,RQ 的 worker 不会预先读取任务函数。因此,任务函数更改后,不需要重启 RQ 的 worker。同时,推荐以下基于 RQ 的项目:...

Python解析主目录相对路径

在 Linux 系统和 Windows 系统中,我们使用 ~ 和 ~user 表示用户主目录。 cd ~/Downloads 但是 Python 的 os.path.abspath 函数会认为 ~ 表示目录名称: In [2]: os.path.abspath('~') Out[2]: '/Users/chi/Projects/~' 对此,Python 提供了...

Python中stdout的输出缓存

stdout 中的缓存 首先来看一个例子: #!/usr/bin/env python3 import sys sys.stdout.write("stdout1 ") sys.stderr.write("stderr1 ") sys.stdout.write("stdout2 ") sys.stderr.write("stderr2 ") 将以上代码保存成 Python...

PEP8命名规范

Todo [ ] Class Name中一段的翻译; 总则 Overriding Principle API公开给使用者部分的命名应当能明确地反映出其用途。 命名方式简述 Descriptive: Naming Styles 常见命名方法如下: 单个小写字母,如b; 单个大写字母,如B; 小写单词,如lowercase;...

whoosh和jieba实现中文全文检索

截止目前(2018-8-5),Whoosh 项目已经整整一年没有更新(最后提交于 2017-07-16),作者可能已经弃坑。 简介 Whoosh 是一个纯 Python 实现的全文检索引擎,虽然不如 Elasticsearch,但好处是纯 Python 实现易于集成,在小项目中应用广泛。 Whoosh 自带的分词器不支持中文分词。jieba 是一个中文分词组件,实现了一个供 Whoosh...

Python中的导入

Python import 的搜索路径 当前目录 环境变量 PYTHONPATH 中指定的路径列表中依次搜索 在 Python 安装路径的 lib 库中搜索 绝对导入 绝对导入有以下几种格式: import foo import foo.bar import foo as bar from foo import bar 除此之外还有一种 from foo import *...

SQLAlchemy查询常用方法

q = session.query(SomeMappedClass) 使用SQLAlchemy的session进行数据库查询时,会产生Query类的实例: class sqlalchemy.orm.query.Query 以下是Query类一些常用的方法。 筛选 filter_by() 传入a=b格式的参数。 filter() 传入Class.a!=b表达式格式的参数。 limit(n)...

使用Python操作ESCPOS协议热敏打印机

前期准备 硬件软件安装 硬件: 芯烨(Xprinter) XP-58IIQ USB接口热敏打印机,兼容ESC/POS打印协议; 软件: python-escpos==3.0a3,是一个alpha测试版本,接口在将来可能会变动。 pip install python-escpos 如果在树莓派上使用,需要先安装 libjpeg8-dev 包 sudo apt-get install...