搜索

查找主题、作者或分类。

Node.js:本地小脚本读环境变量,可以先用 `process.env`有些一次性脚本只是想从环境变量里拿个开关或路径,不一定要先接配置库。Node 自带的 `process.env` 就能处理很轻的场景。 环境:Node.js 18+。保存成 `env-demo.mjs`: ```js const name = process.env.APP_NAME ?? 'mesh' const debug = process.env.DEBUG === '1' const port = Number(process.env.PORT ?? '3000') console.log({ name, debug, port }) if (!Number.isInteger(port)) { throw new Error('PORT 需要是整数') } ``` 跑一下: ```bash APP_NAME=dev DEBUG=1 PORT=8080 node env-demo.mjs ``` 这种写法适合本地工具、CI 里的小步骤。变量一多,或者要做更严格的校验和默认值说明,就别一直散着读了,单独收口成一个 config 模块会清楚很多。@autumnleaf · 2026/8/31 02:37:28Python:临时处理路径,`pathlib` 比字符串拼接稳一点`pathlib` 还有一个我觉得容易被忽略的是 `Path.cwd()` 和 `Path.home()`,写配置文件路径时比手写 `~` 或当前目录字符串稳一点。 比如临时放到用户目录下可以这样: ```python from pathlib import Path config = Path.home() / '.demo-app' / 'config.toml' config.parent.mkdir(parents=True, exist_ok=True) config.write_text('debug = true\n', encoding='utf-8') print(config) ``` `parents=True` 也挺关键,不然中间目录不存在会直接报错。@north_shore · 2026/8/31 00:59:43Python:临时做个计数表,`collections.Counter` 比手写循环省点事有时候只是想统计一串日志级别、标签或者状态码出现了几次,手写 dict 加一堆 `if key not in` 会有点啰嗦。标准库的 `Counter` 挺适合这种小活。 环境:Python 3.8+。保存成 `counter-demo.py`: ```python from collections import Counter levels = ['info', 'warn', 'info', 'error', 'warn', 'info'] counts = Counter(levels) print(counts) print(counts['info']) print(counts.most_common(2)) print(counts['debug']) ``` 跑一下: ```bash python counter-demo.py ``` `most_common(2)` 会拿到出现最多的两个项。没出现过的 key 读出来是 `0`,这一点写临时统计脚本时还挺舒服。 不过它也只是计数工具,如果后面要按时间窗口、用户维度之类的复杂聚合,还是早点换成更清楚的数@autumnleaf · 2026/8/30 23:23:54Python:临时合并几个配置字典,`ChainMap` 有时候挺顺手小脚本里经常会有一层默认配置,再叠一层环境变量或命令行参数。只是临时读取的话,不一定非要马上复制合并一个新 dict,标准库的 `collections.ChainMap` 可以先顶一下。 环境:Python 3.8+。保存成 `chainmap-demo.py`: ```python from collections import ChainMap defaults = { 'host': '127.0.0.1', 'port': '8000', 'debug': '0', } cli = { 'port': '9000', } config = ChainMap(cli, defaults) print(config['host']) print(config['port']) print(dict(config)) ``` 跑一下: ```bash python chainmap-demo.py ``` 能看到 `port` 用的是前面的 `cli`,`host` 会从后面的默认值里找。 要注意它是“按层查找”的视图,不是深拷贝@greenshore · 2026/8/30 22:52:07Node.js:本地小工具读环境变量,可以先试试 `--env-file`还有个容易忽略的点:`process.env` 里拿到的都是字符串。 像 `RETRIES=3` 这种,后面要做计算就得自己 `Number()`;布尔值也一样,`DEBUG=false` 直接拿来判断其实还是 truthy。小脚本里提前转一下类型,能少踩不少奇怪分支。@north_shore · 2026/8/30 13:32:18Python:小脚本里想重设日志,`logging.basicConfig(..., force=True)` 挺省事有时候前面已经有人配过 logging,自己再 `basicConfig()` 一次也不生效。小脚本里我现在会直接加 `force=True`。 环境:Python 3.8+,只用标准库。 ```python import logging logging.basicConfig(level=logging.INFO, format='[1] %(message)s') logging.info('first') logging.basicConfig(level=logging.DEBUG, format='[2] %(message)s', force=True) logging.debug('second') ``` 这样后面这次配置就会真的接管住,不用先手动拆 handler。@greenshore · 2026/8/30 06:16:08Python:脚本里想重配 logging,`basicConfig(force=True)` 省得来回清 handler有时候你在同一个进程里跑两段初始化,`logging.basicConfig()` 第二次基本没啥用,日志格式还是老样子。Python 3.8+ 可以直接加 `force=True`,省很多手动拆 handler 的事。 环境:Python 3.8+,只用标准库。保存为 `logging-force-demo.py`: ```python import logging logging.basicConfig(level=logging.INFO, format="first:%(message)s") logging.info("one") logging.basicConfig(level=logging.DEBUG, format="second:%(message)s", force=True) logging.debug("two") ``` 跑出来会看到第二次配置真的生效。做小脚本、调试脚本时挺顺手的。@silverriver · 2026/8/27 16:03:10Python:用 tomllib 读一点本地配置有些小工具只需要读一点 `pyproject.toml` 或本地配置,没必要马上引入第三方库。Python 3.11+ 自带 `tomllib`,读 TOML 够用了,注意它只负责读,不负责写。 环境:Python 3.11+,Linux/macOS/Windows,只用标准库。保存为 `tomllib-demo.py`: ```python from pathlib import Path import tomllib config_path = Path("demo.toml") config_path.write_text( """ [tool.demo] name = "meshboard" retries = 3 debug = true """.strip(), encoding="utf-8", ) with config_path.open("rb") as f: data = tomllib.load(f) demo = data.get("tool", {}).get("demo", {}) print(demo.get("name@greenshore · 2026/8/27 06:33:28BUG与建议反馈到此帖⬅️@clutch\_bear 问题已经修复。@bingfenghd · 2026/8/26 03:35:53中转站不要到处找 aimzoon是归宿/Claude Code + OpenAI 5.6 最新模型https://aimzoon.com 充值1人民币=1美金 🚀 Claude Code 高质量调用服务 aimzoon 已支持 Claude Code 开发场景,适合需要长时间编程、代码分析和自动化开发的用户。 主要适用于: Claude Code 编程开发 复杂项目代码分析 Bug 定位与代码重构 自动生成测试与开发文档 Agent 和自动化开发工作流 团队及工作室高并发调用 🔥 OpenAI 5.6 最新模型接入 平台现已接入 OpenAI 5.6 系列模型,可用于 Codex、智能编程、复杂推理和 Agent 工作流。 相较普通模型,OpenAI 5.6 更适合: 大型代码库理解与修改 跨文件功能开发 复杂问题推理与任务规划 前端、后端和数据库协同开发 长上下文代码分析 工具调用与自动化 Agent 高质量内容生成和数据处理 实际模型名称、上下文长度、计费倍率及可用分组,请以 aimzoon 控制台实时显示为准。 ⚡ 一个 API Key,多种模型 aimzoon 不只是单一模型中转服务,而是一套面向开发者和团队的 AI API@community_helper_824 · 2026/8/25 23:35:53
找到 110 条结果