惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

陈仓颉

换地方了 – 陈仓颉 The Memory Could Not Be Written – 陈仓颉 My App Defaults 2025 – 陈仓颉 再见 2025 – 陈仓颉 动物乌托邦 – 陈仓颉 白宫到底炸没炸 – 陈仓颉 Group Chats Could Be Overwhelming – 陈仓颉 和平使者不和平 – 陈仓颉 路人 – 陈仓颉 Faint – 陈仓颉 麦门永存。 – 陈仓颉 捕风追影 – 陈仓颉 暑期观影 – 陈仓颉 柳州见闻 – 陈仓颉 与系统共舞 – 陈仓颉 人人都是悉达多 – 陈仓颉 地铁怪谈 – 陈仓颉 认知 觉醒了吗? – 陈仓颉 七百天后 – 陈仓颉 Of Studies – 陈仓颉 稀缺大脑 – 陈仓颉 掌控习惯 – 陈仓颉 哪吒之魔童闹海 – 陈仓颉 世事无常 – 陈仓颉 My App Defaults 2024 – 陈仓颉 便利店 – 陈仓颉 vivo X200 Pro 使用体验 – 陈仓颉 近日观影 – 陈仓颉 独立博客自省问卷15题 – 陈仓颉 七月观影 – 陈仓颉 《富兰克林自传》书摘 – 陈仓颉 绿箭侠 – 陈仓颉 三体问题 – 陈仓颉 2024春节观影 – 陈仓颉 《海王2》与 DCEU 的终结 – 陈仓颉 从《笔记的方法》中学到的笔记的方法 – 陈仓颉 一加 Ace 2 Pro 使用体验 – 陈仓颉 2023 国庆观影记录 – 陈仓颉 在多邻国无压学习法语100天 – 陈仓颉 奥本海默 – 陈仓颉 碟中谍7 – 陈仓颉
用 Gemini 2.5 Flash 制作一个小工具 – 陈仓颉
2025-09-18 · via 陈仓颉

我的电脑里有一个专门的硬盘用来放置我下载好的影视剧,分为电影和电视剧两个大分类。在电影文件夹中,我把电影区分类【看过】和【未看】两个大类目,前者用来时不时重温喜欢的老电影,后者用来保存我在各个渠道获得的有意思的电影。【未看】中分为五个电影类型:动画、动作、惊悚、剧情、科幻,这五个类型是从最初的十几部电影中大致得来的,多了复杂,少了不好区分,这五个刚刚好。

截止今天,我下载好但未看的电影已经有118部,我无法一眼看出我所有的电影名称。我的命名遵循 电影名 + 年份 的规则,如 绝境盟约 La sociedad de la nieve 2023.mp4。我想到一个方式可以让我一眼看到所有电影文件,紧接着想到 AI 可以帮上这个忙,Gemini 正好有这个能力,于是我把我的需求告诉 Gemini 2.5 Flash:

请帮我生成一个python小工具,用来做如下事情:
遍历指定文件夹以及该文件夹下所有子文件夹
把所有文件夹和文件找出来整理按照时间排序
生成为一个 .md 纯文本文件

几秒钟后,Gemini 马上生成一个带注释的 Python 片段,顺便告诉我这个小工具的使用方法和限制前提。结果自然是最小可用,不到一秒钟时间就把我所有电影文件遍历出来,还标记出修改时间。第一版还有些需求没有达到,我继续向 Gemini 沟通,经过几次迭代,最后获得了一个我最满意的版本:

import os
import datetime

def generate_sorted_file_list(output_filename='sorted_files.md'):
    """
    遍历当前工作目录及其子文件夹,按修改时间排序并生成Markdown文件。

    :param output_filename: 输出的Markdown文件名。
    """
    # 自动获取脚本运行时所在的目录
    folder_path = os.getcwd()

    if not os.path.isdir(folder_path):
        # 理论上此情况不会发生,除非工作目录被删除
        print(f"错误:当前工作目录 '{folder_path}' 不存在或不是一个有效的文件夹。")
        return

    all_items = []
    print(f"正在扫描当前目录及其子目录: {folder_path}...")

    # 遍历所有文件和文件夹,并收集路径和修改时间
    for root, dirs, files in os.walk(folder_path):
        for name in dirs:
            path = os.path.join(root, name)
            # 跳过软链接,避免循环
            if os.path.islink(path):
                continue
            try:
                mod_time = os.path.getmtime(path)
                all_items.append({'path': path, 'mod_time': mod_time, 'type': 'directory'})
            except FileNotFoundError:
                continue  # 忽略在遍历过程中被删除的条目

        for name in files:
            path = os.path.join(root, name)
            try:
                mod_time = os.path.getmtime(path)
                all_items.append({'path': path, 'mod_time': mod_time, 'type': 'file'})
            except FileNotFoundError:
                continue  # 忽略在遍历过程中被删除的条目

    # 根据修改时间进行排序
    all_items.sort(key=lambda x: x['mod_time'], reverse=True) # reverse=True 为降序,最新的在最前

    # 写入Markdown文件
    try:
        with open(output_filename, 'w', encoding='utf-8') as f:
            f.write(f"# 文件夹内容列表(按修改时间排序)\n\n")
            f.write(f"**起始路径**: `{folder_path}`\n")
            f.write(f"**生成时间**: {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n\n")

            f.write("---\n\n")
            for item in all_items:
                mod_time_str = datetime.datetime.fromtimestamp(item['mod_time']).strftime('%Y-%m-%d %H:%M:%S')
                item_type = '📁 文件夹' if item['type'] == 'directory' else '📄 文件'
                # 构建相对路径
                relative_path = os.path.relpath(item['path'], folder_path)
                f.write(f"- **{item_type}** `{relative_path}`\n  - **修改时间**: `{mod_time_str}`\n\n")

        print(f"已成功生成文件: {output_filename}")

    except Exception as e:
        print(f"写入文件时发生错误: {e}")

# 示例用法
if __name__ == '__main__':
    generate_sorted_file_list()

这个版本的工具可以放在任何文件夹下运行,自动遍历该文件夹所有文件和子文件夹,用 Markdown 二级标题区分文件夹,以目录树形式显示所有文件名,忽略掉工具本身这个文件(Gemini 给这个工具起了名字:list_generator.py),输出为一个 folder_content.md 文本文件。这个小工具可以在 Windows 系统任何文件夹下使用,预计也可以在 MacOS 和 Linux 下运行。

最终这个小工具在我的硬盘生成的文件内容如下(有做删减):

# 文件夹内容列表

**起始路径**: `D:\movies\未看`

## 未看

- folder_content.md

## 剧情

- 2002 荒唐周五夜 Vendredi soir 2002.mp4
- Hello!树先生 2011.mkv
- 两小无猜 Jeux d'enfants 2003.mkv
- 乌鸦:重生 The Crow 2024.mp4
- 互联网之子 The Internet's Own Boy 2014.rmvb
- 他的三个女儿 His Three Daughters 2024.mkv
- 低俗小说 Pulp Fiction 1994.mp4
...

## 剧情\Jeanne.Dielman.23.Commerce.Quay.1080.Brussels.1975.FRENCH.1080p.BluRay.x265-VXT

- Jeanne.Dielman.23.Commerce.Quay.1080.Brussels.1975.FRENCH.1080p.BluRay.x265-VXT.mp4

## 剧情\出租车司机 Taxi Driver 1976

- 出租车司机(蓝光特效中英双字).Taxi.Driver.1976.BD-1080p.X265.10bit.AAC5.1.CHS.ENG-UUMp4.mp4

## 剧情\阳光灿烂的日子 1994

- 未公映的140分钟版本的《阳光灿烂的日子》里一些扩充片段.mp4
- 阳光灿烂的日子.In.the.Heat.of.the.Sun.1994.FRA.BluRay.1080p.HEVC.10bit.MiniFHD-MOMOHD.mkv

## 动作

- 东北警察故事2.mp4
- 刑房 GrindHouse 2007.mp4
- 女王神剑 Red Sonja 2025.mp4
- 智齿 2021.mp4
- 杀手 The Killer 2023.mp4
- 疾速剧痛 Wick Is Pain 2025.mp4
...

## 动作\三方国界 Triple Frontier 2019

- Triple.Frontier.2019.2160p.4K.WEB.x265.10bit.AAC5.1-[YTS.MX].mkv
- Triple.Frontier.2019.原版字幕.srt
- Triple.Frontier.2019.简体字幕.ass

## 动作\巴比龙 Papillon 2017

- 巴比龙.papillon.2017.ass
- 巴比龙.papillon.2017.mkv

## 动作\暂告安全 Safe 2012

- Safe.2012.1080p.BluRay.x264.DTS.ass
- Safe.2012.1080p.BluRay.x264.DTS.mkv
- Safe.2012.1080p.BluRay.x264.DTS.nfo

## 动作\洛奇

- 洛奇.1976.BD1080p.中英双字.mp4
- 洛奇2.1979.BD1080p.中英双字.mp4
- 洛奇3.1982.BD1080p.中英双字.mp4

## 动作\落水狗 Reservoir Dogs 1992

- Reservoir.Dogs.1992.2160p.WEB-DL.x265.10bit.HDR.DTS-HD.MA.TrueHD.5.1-NOGRP.ass
- Reservoir.Dogs.1992.2160p.WEB-DL.x265.10bit.HDR.DTS-HD.MA.TrueHD.5.1-NOGRP.mkv

## 动画

- Ghost.in.the.Shell.1995.2160p.UHD.BDRip.x265.DV.TrueHD.7.1.Atmos-CoolFansSub.mkv
- 新·福音战士剧场版:终.Neon Genesis Evangelion│▌.2021.HD1080P.日语官方中字.mp4
- 火星特快 Mars Express 2023.mp4
- 猎魔女团 K-POP 2025.mp4
- 红辣椒 パプリカPaprika (2006).BD1080P.国粤台日四语.中英双字.mp4
- 超人总动员 The Incredibles 2004.mp4

## 动画\攻壳机动队

- 攻壳机动队 (1995) - 1008p.chi.zh-cn.ass
- 攻壳机动队 (1995) - 1008p.mkv

## 动画\未麻的部屋 (1998) 1080P

- Perfect.Blue.1998.REPACK.1080p.BluRay.x264.DTS.mkv
- cover.jpg

## 惊悚

- 囚徒 Prisoners 2013.rmvb
- 堕入地狱 Drag Me to Hell 2009.mp4
- 大开眼戒 Eyes Wide Shut 1999.mp4
- 完美伴侣 Companion 2025.mp4
- 巴黎深渊 Sous la Seine 2024.mp4
...


## 惊悚\催眠 Hypnotic 2023

- Hypnotic.2023.2160p.AMZN.WEB-DL.DDP5.1.H.265-FLUX.ass
- Hypnotic.2023.2160p.AMZN.WEB-DL.DDP5.1.H.265-FLUX.mkv
- Hypnotic.2023.2160p.AMZN.WEB-DL.DDP5.1.H.265-FLUX.srt

## 惊悚\机动杀人 Taking Lives 2004

- Taking.Lives.2004.1080p.BluRay.H264.AAC-RARBG.1.ass
...
- Taking.Lives.2004.1080p.BluRay.H264.AAC-RARBG.9.srt
- Taking.Lives.2004.1080p.BluRay.H264.AAC-RARBG.mp4

## 科幻

- Mulholland.Dr.2001.2160p.UHD.BluRay.x265.10bit.HDR.DDP5.1-RARBG.mkv
- [银翼杀手].Blade.Runner.1982.The.Final.Cut.BluRay.1080p.x264.DTS.2Audios-CMCT.mkv
- 十二猴子 Twelve.Monkeys.1995.mkv
- 千钧一发 Gattaca 1997.mp4
- 大都会 Metropolis 1927.mp4
...

## 科幻\异次元骇客 The Thirteenth Floor 1997

- The.Thirteenth.Floor.1999.1080p.BluRay.x264-CiNEFiLE.ass
- The.Thirteenth.Floor.1999.1080p.BluRay.x264-CiNEFiLE.mkv

## 科幻\时空罪恶 Timecrimes 2007

- Timecrimes.2007.Bluray.1080p.DTS-HD.x264.mkv
- Timecrimes.2007.Bluray.1080p.DTS-HD.x264.srt

可以看到我的列表并没有完全按照格式设置,有些电影作为一个文件夹存在,内涵外挂字幕或者其他信息。这样的列表可以让我非常方便地遍历所有资料,根据我的需要再做调整。后续如果有需要,我可以把电影名和上映年份甚至导演等信息整理成 YAML,用 Obsidian 的 bases 功能展开。

我用了不到十分钟解决了一个小问题,如果从零开始从学会 Python 到徒手写出这个工具,以我的智商,也许需要好几周时间。最后突然一想,这何尝不是一种 Vide Coding?