专栏名称: t0mbkeeper
汉语从句专家,茧房建筑师
目录
相关文章推荐
利维坦  ·  不会读书的精英大学生 ·  5 天前  
界面新闻  ·  跌5.3%!险守3300点!超5000只个股下跌 ·  1 周前  
51好读  ›  专栏  ›  t0mbkeeper

“注释即文档”虽然是 Golang 提倡的,但其实早就有程序员践-20241012222920

t0mbkeeper  · 微博  · 热门自媒体  · 2024-10-12 22:29

正文

2024-10-12 22:29

“注释即文档”虽然是 Golang 提倡的,但其实早就有程序员践行这一风格。不过以后也许就是“注释即文档和提示词”了。我前阵子写的一个可以自动调节字幕时间轴的程序,就是由下面的提示词生成:

'''
你是一个经验丰富的 Python 程序员,熟悉 ASS 字幕格式。请写一个程序:
1、从命令行接收两个 JSON 文件,以下称做 clips_ori 和 clips_new,以及一个 ASS 字幕文件,以下称作 subs_ori。
2、使用 chardet 检测所打开文件的编码。
3、使用 pysubs2 处理 ASS 字幕。注意 ASS 字幕中的时间需要转换为秒数才能和 clips_ori、clips_new 中的秒数进行比较大小、计算等操作。
4、打开两个 JSON 文件,这两个 JSON 文件包含多个类似{"start": 1311.9356, "end": 1314.021}的对象。对象中的数字是秒数。每个对象描述一个时间段的起止点。
5、对 clips_ori 和 clips_new 中的每个对象,用 end 减去 start,计算出 duration,作为对象的第三个成员。
6、比较两个 JSON 中的对象数量是否相等,如不等则给出提示并退出程序。
7、比较两个 JSON 中索引位置相同的对象中 duration 的差异,如果大于 10 秒则给出提示并退出程序。为便于调整,这个 10 秒用全局变量表示。
8、从索引第一位开始,subs_ori 中所有在 clips_new[i].end 后的字幕事件的时间增加 clips_new[i].duration - clips_ori[i].duration。遍历操作,直到 clips_new 的最后一个对象。
9、将修改后的 subs_ori 另存为一个文件,文件名在命令行中指定。
10、给每个函数添加必要的中文注释。
'''