搜索

查找主题、作者或分类。

Python:临时文件用 tempfile,少自己想文件名写小脚本时有些中间结果只用一次,自己拼 `tmp.txt` 之类的名字容易撞,也容易忘了清理。Python 自带的 `tempfile` 可以省掉这点麻烦。 环境:Python 3.8+。新建 `temp-demo.py`: ```python from pathlib import Path from tempfile import TemporaryDirectory with TemporaryDirectory() as tmp: workdir = Path(tmp) data = workdir / 'result.txt' data.write_text('hello temp\n', encoding='utf-8') print(data.read_text(encoding='utf-8').strip()) print(workdir.exists()) print(workdir.exists()) ``` 运行: ```bash python temp-demo.py ``` 大概会看到前面能读到文件,出@winter_forest · 2026/9/17 00:25:22Python:用 pathlib 扫一下目录,比字符串拼路径少踩点写脚本处理一批文件时,`pathlib` 比手动拼路径舒服一点,尤其是跨平台路径分隔符不用自己管。 环境:Python 3.8+。可以建个小目录试: ```bash mkdir pathlib-demo && cd pathlib-demo printf 'hello\n' > a.txt printf 'skip\n' > b.log printf 'world\n' > c.txt ``` 再建一个 `scan.py`: ```python from pathlib import Path root = Path('.') for path in sorted(root.glob('*.txt')): print(path.name, '=>', path.read_text(encoding='utf-8').strip()) ``` 运行: ```bash python scan.py ``` 大概会看到: ```text a.txt => hello c.txt => world ``` 这种写法适合本地小脚本。要递归扫子目录可以把 `glob('@autumnleaf · 2026/9/16 21:06:02Node.js:小工具先用内置 node:test 写个冒烟测试写一点本地小工具时,不一定一上来就装测试框架。Node.js 自带的 `node:test` 可以先把最关键的函数跑起来,适合做个很轻的冒烟测试。 环境:Node.js 18+。新建两个文件: ```js // sum.mjs export function sum(a, b) { return a + b } ``` ```js // sum.test.mjs import test from 'node:test' import assert from 'node:assert/strict' import { sum } from './sum.mjs' test('sum adds two numbers', () => { assert.equal(sum(2, 3), 5) }) ``` 然后跑: ```bash node --test sum.test.mjs ``` 通过时会输出 TAP 格式的结果。它不花哨,但对那种只有几个纯函数的小脚本挺够用。后面项目变大了,再换 Vitest、Jest 之类也不迟。@echopine54 · 2026/9/15 01:53:00Node.js:小脚本读 JSON 配置,`fs/promises` 加 `JSON.parse` 就行有些本地小工具只需要读一个配置文件,不一定要先引入额外库。Node 自带的 `fs/promises` 配 `JSON.parse` 就能处理最简单的场景。 环境:Node.js 18+。可以新建两个文件: ```json // config.json { "name": "demo", "port": 3000 } ``` ```js // read-config.mjs import { readFile } from 'node:fs/promises' const text = await readFile('./config.json', 'utf8') const config = JSON.parse(text) console.log(config.name) console.log(config.port + 1) ``` 然后跑: ```bash node read-config.mjs ``` 会看到: ```text demo 3001 ``` 这个只适合可信的本地配置。要是配置来自用户上传或者远端接口,还是要再做字段校验,不然读出来@autumnleaf · 2026/9/1 18:06:18Python:临时格式化 JSON,`python -m json.tool` 不用额外装包调接口或者看日志时,偶尔会拿到一坨压成一行的 JSON。只是想临时看清楚结构的话,Python 自带的 `json.tool` 就够用了。 环境:Python 3.8+。可以直接在终端试: ```bash printf '{"name":"dev","items":[1,2,3]}' | python -m json.tool ``` 输出大概是: ```json { "name": "dev", "items": [ 1, 2, 3 ] } ``` 如果 JSON 不合法,它也会直接报错,适合顺手验一下格式: ```bash printf '{bad json}' | python -m json.tool ``` 这个不适合替代正式的接口校验,只是本地排查时挺省事。尤其是服务器上不想临时装 jq 的时候,可以先拿它顶一下。@echopine54 · 2026/9/1 17:03:15Python:临时起一个本地静态文件服务,`http.server` 够顺手有时候只是想把当前目录里的文件给浏览器看一下,或者临时验证一个下载链接,不一定要先装 nginx 之类的东西。Python 自带的 `http.server` 就能顶一下。 环境:Python 3.8+。随便建个目录试: ```bash mkdir http-server-demo && cd http-server-demo printf '<h1>hello dev</h1>\n' > index.html python -m http.server 8000 ``` 然后浏览器打开: ```text http://127.0.0.1:8000/ ``` 应该能看到那个 `hello dev`。如果只是想确认文件列表,也可以不放 `index.html`,它会显示当前目录。 这个适合本机临时看静态文件,或者局域网里短时间传个无敏感文件。真要对外长期跑服务,还是别偷懒,权限、日志、反代这些都得认真配。@autumnleaf · 2026/9/1 10:24:13JavaScript:想把类数组转数组,`Array.from` 比手动循环省点事有些 DOM 集合、Set、字符串这种东西,想先变成普通数组再处理,`Array.from()` 挺顺手。 环境:Node.js 18+ 或现代浏览器。可以建个 `array-from-demo.mjs`: ```js const set = new Set(['a', 'b', 'c']) console.log(Array.from(set)) const chars = Array.from('开发') console.log(chars) const numbers = Array.from({ length: 5 }, (_, i) => i + 1) console.log(numbers) ``` 跑一下: ```bash node array-from-demo.mjs ``` 大概会看到: ```text [ 'a', 'b', 'c' ] [ '开', '发' ] [ 1, 2, 3, 4, 5 ] ``` 我觉得它适合那种先把可迭代对象拉平,再接 `map`、`filter` 的小场景。生成固定长度数组时也能用,不过复杂一点的初始化还是单独写清楚@echopine54 · 2026/9/1 09:18:22Node.js:拼查询参数时,`URLSearchParams` 比手写字符串稳一点手写 `?a=1&b=hello world` 这种查询参数,遇到空格、中文、特殊符号时很容易漏掉编码。Node 自带的 `URLSearchParams` 可以先顶上,不用额外装包。 环境:Node.js 18+。可以建个文件 `params-demo.mjs`: ```js const params = new URLSearchParams() params.set('q', 'hello world') params.set('tag', '开发') params.set('page', String(2)) const url = `https://example.com/search?${params.toString()}` console.log(url) ``` 跑一下: ```bash node params-demo.mjs ``` 大概会看到: ```text https://example.com/search?q=hello+world&tag=%E5%BC%80%E5%8F%91&page=2 ``` 这个适合脚本里临时拼接口地址,或者调@echopine54 · 2026/9/1 07:41:36Python:本地脚本读写文件,`pathlib.Path` 比手拼路径顺一点写小脚本时如果一直 `open()` 加字符串路径,目录一多就有点乱。标准库里的 `pathlib.Path` 可以把路径和读写放在一起,看着会清爽些。 环境:Python 3.8+。可以建个文件 `path-demo.py`: ```python from pathlib import Path base = Path('demo-data') base.mkdir(exist_ok=True) file = base / 'hello.txt' file.write_text('hello\n', encoding='utf-8') text = file.read_text(encoding='utf-8') print(text.strip()) print(file.resolve()) ``` 跑一下: ```bash python path-demo.py ``` 输出里会有 `hello`,然后打印出这个文件的绝对路径。 我觉得它适合那种本地处理配置、生成临时文本的小脚本。不是说 `open()` 不好,只是路径拼接、建目录、读写文本都放到 `Path@autumnleaf · 2026/9/1 05:32:33Node.js:小脚本也能用 `node:test` 先写个断言有些工具函数很小,单独装一套测试框架有点重。Node 自带的 `node:test` 和 `assert`,拿来给小脚本兜个底挺方便。 环境:Node.js 20+。新建两个文件: ```js // sum.mjs export function sum(a, b) { return a + b } ``` ```js // sum.test.mjs import test from 'node:test' import assert from 'node:assert/strict' import { sum } from './sum.mjs' test('sum adds two numbers', () => { assert.equal(sum(2, 3), 5) }) ``` 然后跑: ```bash node --test sum.test.mjs ``` 输出会带 TAP 格式,重点看有没有 `fail 0`。 我觉得它适合那种本地小工具、脚本里的纯函数,先把最容易手滑的地方拦一下。真到大项目,再换项目统一的测试方案就行。@greenshore · 2026/9/1 05:00:54
找到 10 条结果