Codex 入门

Codex 说完成了之后:亲手检查一份资源清单 CSV

把四条资源记录整理成 CSV,独立检查列名、数量、状态和含逗号的文件名,再用两个故意错误的副本验证检查方法。

本文目录 · 6

“文件已生成、检查通过”只是一个结论。本课让 Codex 把四条虚构资源记录整理成 CSV,再用自己的眼睛和简单命令检查。你会故意制造两种错误,看看“文件能打开”和“内容正确”究竟差在哪里。

先完成 Codex 首次使用。本课仍用 Windows PowerShell 与 Codex CLI,沿用自己的账号和计费方式,不需要新插件、API Key 或 Excel 会员。模型整理可能消耗账号额度;后面的 PowerShell 本地检查不调用模型。

1. 给交付物一个明确约定

在文件资源管理器新建空目录 C:\ai-practice\codex-csv。创建 UTF-8 文件 原始清单.txt,完整写入:

R01:快速开始.pdf,类型为教材,状态为已下载。
R02:写作,校对规则.zip,类型为Skill,状态为已下载。
R03:示例项目,类型为源码,状态为未下载。
R04:操作演示.mp4,类型为视频,状态为已下载。
共四条记录,编号不重复。不需要联网确认下载状态。

第二条文件名里刻意放了一个英文逗号。这是 CSV 练习的关键:逗号既可能是字段分隔符,也可能是文件名的一部分,不能简单地见逗号就切开。

约定输出文件叫 资源清单.csv,列名及顺序为 id,filename,type,status,四条记录维持原顺序;只允许创建这个文件,不改输入。如果已有同名输出,先停下来报告,不覆盖旧成品。

2. 先看方案,再允许创建文件

从该目录打开 PowerShell,运行 Get-Location 确认位置。在 Codex 会话中先提交:

读取原始清单.txt,先给出转换成资源清单.csv的简短方案,不写文件。
列名及顺序:id,filename,type,status。
一条输入对应一条数据行,共四行,保留顺序和全部字段。
含英文逗号的文件名要按CSV规则处理。
只使用输入,不联网判断“已下载”,不安装软件。
如目标文件已经存在,报告冲突,不覆盖。

先确认方案没有“顺便扫描下载目录”或“合并相似记录”。检查当前会话权限;如果仍是上一篇只读模式,需要针对这次写入选择适合练习目录的权限,不要选择整个设备的完全访问。可退出后在同一目录用 codex.cmd --sandbox workspace-write --ask-for-approval on-request 启动,并重新提交任务范围;独立安装版使用 codex

只有方案与文件位置正确,才明确回复:“按上述方案执行,只新建资源清单.csv,保留原始清单.txt。完成后报告实际检查与未检查事项。”

3. 不看总结,先看文件本身

下面是人工给出的正确参考文件,不是模型现场返回。用它对照实际文件,尤其看第二行的引号:

id,filename,type,status
R01,快速开始.pdf,教材,已下载
R02,"写作,校对规则.zip",Skill,已下载
R03,示例项目,源码,未下载
R04,操作演示.mp4,视频,已下载

先用记事本打开实际输出,检查 UTF-8 中文、完整文件名、编号与状态。没有逗号的字段也被加了双引号,是合法写法;换行方式不同也不自动判错。CSV 可以有五条文本行,其中一条是表头,所以“数据记录数”应是四,不是五。

用表格软件打开时,若所有内容挤在一列,尝试其“从文本/CSV 导入”,选择 UTF-8 编码和逗号分隔符。不要为了适应错误导入设置,直接把文件名里的逗号删掉。

4. 用独立命令检查,别让同一回答自己作证

关闭或暂停 Codex 后,在练习目录的 PowerShell 运行:

$rows = @(Import-Csv -LiteralPath '.\资源清单.csv' -Encoding UTF8)
$rows | Format-Table
$rows.Count
($rows | Where-Object status -eq '已下载').Count
($rows | Where-Object status -eq '未下载').Count
$rows | Group-Object id | Where-Object Count -gt 1

应看到四条记录、已下载三条、未下载一条;最后的重复编号检查不应输出任何组。检查第二条的 filename 是否完整保留“写作,校对规则.zip”,R03 是否仍是未下载。

再执行逐字段对照。以下程序只读 CSV,不修改文件,也不联网:

$expected = @(
  @('R01','快速开始.pdf','教材','已下载'),
  @('R02','写作,校对规则.zip','Skill','已下载'),
  @('R03','示例项目','源码','未下载'),
  @('R04','操作演示.mp4','视频','已下载')
)
$rows = @(Import-Csv -LiteralPath '.\资源清单.csv' -Encoding UTF8)
if ($rows.Count -ne 4) { throw '应有四条数据记录' }
$columns = @($rows[0].PSObject.Properties.Name)
if (($columns -join ',') -cne 'id,filename,type,status') {
  throw '列名或顺序不符合约定'
}
for ($i = 0; $i -lt 4; $i++) {
  for ($j = 0; $j -lt 4; $j++) {
    if ($rows[$i].($columns[$j]) -cne $expected[$i][$j]) {
      throw "第 $($i + 1) 条的 $($columns[$j]) 不匹配"
    }
  }
}
'四条记录逐字段一致'

程序通过说明这份小清单满足约定,不说明文件指向的资源已经真实下载,更不说明资源本身安全。检查范围必须与证据范围一致。

5. 造一个反例,检验自己的检查方法

先通过文件资源管理器复制输出为 错误样例.csv,只编辑副本。第一次把 R03 的“未下载”改成“已下载”,其余不动。这个文件仍能打开,记录数仍为四,重复编号仍为零;但状态统计会变成四条已下载,逐字段对照会报第三条状态不匹配。

运行副本检查时,把两个检查片段中的路径改为 错误样例.csv,不要误改真实输出。第二次从正确文件重新复制一份副本,仅去掉第二条文件名两侧的引号。CSV 解析会把逗号当作字段分隔,导致字段错位;直接看“有四行”发现不了这个错误。

这两个实验说明:能打开、数量正确、内容逐字段正确是三层不同标准。检查命令报错时,先分辨是你改错了文件路径,还是数据确实不一致,不要立刻让 Codex“修复整个环境”。

6. 发现问题后,反馈到具体位置

如果实际成品漏了引号,可以这样继续任务:

资源清单.csv第二条的filename包含英文逗号,但没有正确引用,
导致Import-Csv读取后的字段错位。
请只修复这个CSV格式问题,保持四条编号、顺序和状态不变。
不修改原始清单.txt,不下载资源,不生成额外报告。
修复后重新检查四条记录的每个字段,报告实际结果。

重新打开文件并重跑自己的检查,不只接受“这次修好了”。保留原始文本、最终 CSV 和检查结果;不要把故意损坏的副本当成可交付文件。

最后问清 Codex 哪些检查确实运行过,哪些只做了阅读判断。若它从未启动表格软件,就不能声称“Excel 实测通过”;若没有访问真实下载文件,就不能声称“所有资源可用”。本课提供的参考数据和本地核对方法不依赖模型实测,学习目标是让你自己能拆穿看似成功的错误交付。

文字来源:OpenAI 官方 Codex 文档;开工科技原创练习