如何设置 calibre 从添加书籍的文件名推断标题和作者等元数据
【免费下载链接】calibreThe official source code repository for the calibre ebook manager项目地址: https://gitcode.com/GitHub_Trending/ca/calibre
calibre 在添加书籍时默认从电子书文件内部读取元数据;当文件内元数据缺失、不准确,或你习惯用统一的文件名规范(如"标题 - 作者")来管理藏书时,可以让 calibre 改从文件名推断标题、作者等字段。整个配置只需要在设置对话框的Adding books(添加书籍)区块中完成:打开相关选项、确认或修改用于解析文件名的正则表达式、用内置测试字段验证,然后重新添加书籍即可看到推断结果。
在哪里配置
元数据从文件名推断的配置入口在 manual/gui.rst 的 "Guessing metadata from file names" 一节中有说明:
- 正常情况 calibre 读取书籍文件内部的元数据,但可以配置为改为从文件名读取,入口为
Preferences->Import/export->Adding books->Read metadata from file contents。 - 在设置对话框的
Adding books区块中,可以指定一条正则表达式,calibre 会用它在把电子书添加到书库时,从文件名中推断元数据。
默认规则:title - author
manual/gui.rst 给出的默认正则表达式是:
title - author含义是:文件名中第一个-之前的所有字符视为书籍标题,之后的部分视为作者。文档中的示例:
Foundation and Earth - Isaac Asimov.txt会被解析为标题Foundation and Earth、作者Isaac Asimov。
需要注意 manual/gui.rst 中明确给出的限制:如果文件名中不含连字符-,这条默认规则会匹配失败,不会得出任何元数据。也就是说默认规则只适合"标题 - 作者"这种命名习惯。
自定义正则表达式
如果你的文件命名不是"标题 - 作者"结构,需要自己写正则。calibre 在Adding books区块的正则中支持用字段名标记元数据字段,语法是(?P<字段名>...)。manual/regexp.rst 的 "Adding books" 一节给出的例子:文件名形如Classical Texts: The Divine Comedy by Dante Alighieri.mobi(系列名 + 冒号 + 标题 + by + 作者),而 calibre 的标准表达式(?P<title>.+) - (?P<author>[^_]+)解析不出有意义的数据,可用的正则表达式为:
[a-zA-Z]+: (?P<title>.+) by (?P<author>.+)两点使用说明(均来自 manual/regexp.rst):
- 在标记元数据字段的组内,需要写出具体的表达式来描述该字段实际匹配的内容,不能只留字段名。
- 允许使用的字段名会列在设置窗口中;窗口里还有一个测试字段,写正则时应用它验证表达式是否按预期匹配。
- 使用测试字段时,输入的测试文件名必须带上文件扩展名,否则即使表达式本身正确也不会得到匹配。
正则语法本身(字符集、量词、分组、大小写标志等)可以参照 manual/regexp.rst 的教程和 manual/regexp_quick_reference.rst 速查表。
验证推断结果
配置完成并保存设置后,用 manual/gui.rst 中 "Add books" 一节的入口添加书籍(Add books按钮支持从单个文件夹、文件夹及子文件夹添加),然后检查:
- 主窗口右侧的
Book details面板会显示当前选中书籍的封面和全部元数据,直接查看标题、作者是否与文件名一致。 - 也可以打开
Edit metadata(Edit metadata individually)对话框核对各字段值。
如果Book details中显示的标题、作者与预期不符,说明正则没有匹配到文件名,回到Adding books区块用测试字段排查;对照上面的两条注意事项,先确认测试文件名带了扩展名,再检查组内表达式是否能覆盖文件名中该字段的实际内容。
相关说明
- 文件内元数据与文件名推断的关系:
Add books动作本身可以从多种电子书格式中读取元数据,同时也尝试从文件名推断元数据(见 manual/gui.rst),是否以文件名为准由前面Read metadata from file contents选项控制。 - 如果文件名里连连字符都没有、又不适合写定制正则,可以考虑用
Edit metadata系列动作(逐本编辑或批量编辑)手动补齐元数据,见 manual/gui.rst 的 "Edit metadata" 一节。
【免费下载链接】calibreThe official source code repository for the calibre ebook manager项目地址: https://gitcode.com/GitHub_Trending/ca/calibre
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考