使用 Nim 语言压缩解压缩 zip 文件

120 阅读1分钟

Nim 中文编程入门

这一节,我们介绍如何使用 Nim 语言压缩与解压缩 zip 文件。需要安装第三方 zip 库,可以使用 nimble install zip 命令。需要注意的是,zip 库依赖 zip.lib,记得把 zlib1.dll [windows] 加在 Nim 安装路径的 bin 目录下。

解压缩文件

我们常用的 xlsx 文件[Excel],其实是许多 XML 文件的压缩文件。在 Windows 系统上,可以将 xlsx 的后缀改为 zip 就可以一窥 xlsx 的原貌了。

下面,我们使用 zip 库对 xml 文件进行解压缩。

import os

import zip / zipfiles


proc extractXml*(fileName: string) =
  var z: ZipArchive
  if not z.open(fileName):
    echo "Opening zip failed"
    quit(1)
  z.extractAll("files/td")
  z.close()
  assert existsDir("files/td/xl/worksheets")
  assert existsFile("files/td/xl/worksheets/sheet1.xml")

extractXml("test.xlsx")

压缩文件

我们使用 addFile 压缩文件。

import os

import zip / zipfiles


proc toSrc*(src, dest: string) = 
  var z: ZipArchive
  # 目标文件
  assert z.open(dest, fmWrite)
  # 添加源文件
  z.addFile(src)
  z.close()
  
toSrc("utils.nim", "test.zip")