返回文章列表

文章

Get Programming with Haskell-26

本章总结内容包括: • 了解libraries使用的一种独特二进制格式 • 使用 ByteString 编写工具批量处理二进制数据 • 使用 Text 类型处理 Unicode 数据 • 构建一个执行复杂 I/O 任务的大型程序的结构

目录
  1. 总结篇:处理二进制文件与图书数据
  2. 运行该程序会输出一个 books.html 文件。打开它,你会看到它看起来正如你所预期的那样(见图 26.1)。 现在你已经能够将书籍写入文件,你可以开始处理更复杂的 MARC 记录问题了。
  3. 26.2 使用 MARC 记录
  4. MARC 记录是图书馆用来记录和传输书籍信息(称为书目信息)的标准格式。如果你对书籍的数据感兴趣,MARC 记录是一种非常重要的格式。互联网上有很多大型的、免费公开的 MARC 记录集合。在这个综合项目中,你将使用俄勒冈健康与科学大学(Oregon Health & Science University)图书馆的记录。前面提到过,MARC 是 “Machine-Readable Cataloging record”(机读编目记录)的缩写。顾名思义,MARC 记录是专为计算机读取而设计的。与 JSON 和 XML 这样的格式不同,它们并不是为人类阅读而设计的。如果你打开一个 MARC 文件,你将看到如图 26.2 所示的内容。 如果你曾经接触过 MP3 文件中用于存储元数据的 ID3 标签格式,那么你会发现 MARC 记录与之类似。
  5. 26.2.1 理解 MARC 记录的结构
  6. 26.2.2 获取数据
  7. 首先,你需要获取一些可以使用的 MARC 数据。幸运的是,archive.org 上有很多公开的 MARC 数据集。在本项目中,你将使用俄勒冈健康与科学大学图书馆的一组记录。访问项目页面: https://archive.org/download/marc_oregon_summit_records/catalog_files/ 下载文件 ohsu_ncnm_wscc_bibs.mrc。在本课中,你可以将该文件重命名为 sample.mrc。这个文件大小为 156 MB,是这些文件中最小的一个,但你也可以尝试其他文件,它们也同样可以使用。
  8. 26.2.3 检查引导并遍历记录
  9. 这个集合中有 140,328 条记录!现在你已经将所有记录拆分开,接下来可以开始提取每条记录的作者和标题信息了。
  10. 26.2.4 读取目录(Directory)
  11. 26.2.5 使用目录查找字段
  12. 26.2.6 处理目录条目并查找 MARC 字段
  13. 26.2.7 从 MARC 字段中获取作者和标题信息
  14. 26.3 将一切整合在一起
  15. 总结
  16. 扩展练习
  17. 📎 参考文章

总结篇:处理二进制文件与图书数据#