-
asyncio无分布式锁,需用Redis实现:通过SETkeyvalueNXEX原子加锁,Lua脚本安全解锁,UUID防误删,超时须大于业务耗时,避免contextmanager封装,重视降级与监控。
-
Python处理跨平台换行符时,可通过open函数自动转换或手动替换统一为\n。读取时使用文本模式可自动标准化为\n;需精确控制时可用replace方法将\r\n和\r替换为\n;写入时通过newline参数指定换行格式;批量处理可结合pathlib遍历文件并统一换行符,确保跨平台兼容性。
-
处理大文件需流式读取与增量计算:按行读取最稳妥,分块读取适用于无行结构文件,生成器封装提升复用性,结合csv.DictReader、itertools.islice、Welford算法等实现高效内存控制。
-
direnv加载Python环境变量不生效,主因是shellhook未激活;需在~/.zshrc或~/.bashrc中添加eval"$(direnvhook$SHELL)"并source;.envrc中禁止裸export,须先direnvallow或用export_with_env;layoutpython可自动管理虚拟环境与PYTHONPATH,避免手动sourcevenv/bin/activate;gitclone后必须手动direnvallow才能加载.envrc。
-
requests库中不存在Cookie_Request类,正确操作Cookie应使用requests.Session.cookies或response.headers.get('Set-Cookie');加密Cookie无法解密,重点在于正确携带与更新。
-
aggregate()默认聚合全表数据,无需filter();支持多字段一次计算,返回单字典结果;空值返回None需手动处理;分组聚合须用values()+annotate()。
-
asyncio.Condition()必须显式传入asyncio.Lock实例,否则报错;wait()需在持锁时调用,会自动释放并重获锁;notify无需持锁但建议在锁内调用以保证原子性;不可用threading.Condition替代,因其阻塞事件循环。
-
ReportLab生成PDF中文乱码需注册中文字体并显式指定,如pdfmetrics.registerFont(TTFont('SimHei','fonts/simhei.ttf'));表格换行用Paragraph+WORDWRAP;Web响应须设Content-Type:application/pdf;高并发下字体注册一次、样式用.clone()、避免全局修改。
-
itertools.chain(*nested)是展开双层嵌套列表最省事的方法,不建中间列表、不递归、纯流式拼接,但需解包且要求子项为非字符串可迭代对象。
-
直接用pipinstalljsonpath安装原生库(非jsonpath-ng),路径需以$开头、无空格,传入已解析的dict/list;匹配失败返回False而非空列表,须类型检查isinstance(result,list)后再处理。
-
使用open()或pathlib读取文件为字符串,小文件可用read()或Path.read_text(),大文件建议分块读取以避免内存溢出。
-
TensorFlowServing生产部署应采用gRPC服务+FastAPI协议转换方案,SavedModel须用tf.keras.models.save_model显式指定tf格式并确保版本目录结构正确,启动需同时配置--rest_api_port和--enable_batching,gRPC客户端需版本严格匹配且stub全局复用。
-
文件锁是防止crontab多次启动同一Python脚本的最轻量跨平台方案:脚本用os.open(...,O_CREAT|O_EXCL)原子创建锁文件,成功则写入PID并执行主逻辑,异常或退出时os.unlink()清理;systemd下还需配置Type=oneshot和StartLimitBurst/Interval防重复触发。
-
今日头条热搜榜的真实Ajax接口可通过F12打开Network→XHR,筛选含“hot”或“hotboard”的请求,典型URL为https://www.toutiao.com/hot-event/hot-board/,需携带Referer、User-Agent及有效Cookie(含tt_webid)才能成功获取JSON数据。
-
本文介绍多种从字符串中提取连续字母序列(即“单词”)的方法,重点解决非字母字符(如标点、数字、空格等)作为分隔符的问题,并兼顾多语言Unicode字符(如带重音符号的法语字符)的正确识别。