在前端开发中,我们经常会需要处理数据表格,而CSV是其中很常见的一种格式。与此同时,Deno作为一个新兴的运行时环境,也很有前途。那么,在Deno中如何读写CSV文件呢?本文将详细介绍这个问题,并提供实用的示例代码和指导意义。
CSV 文件格式
CSV是“Comma-Separated Values”的缩写,顾名思义,就是一种包含逗号分隔值的文件格式。CSV 文件可以被纯文本编辑器打开,是一种通用的对数据表格的描述方式,可以用于Excel、MySQL等应用程序。
CSV文件的格式一般是这样的:
姓名,年龄,居住地 zhangsan,18,beijing lisi,25,shanghai wangwu,30,guangzhou
即每行都是一个记录,每个记录用逗号分隔数据。第一行通常是字段名,方便后面的数据解析和使用。
Deno 中读取 CSV 文件
在Deno中,要读取CSV文件,第一步是找到文件路径,可以使用标准库中的Deno.cwd()
函数获取当前工作目录,再根据相对路径获取文件路径。
const filePath = "./data.csv"; // 读取文件,并指定编码格式 const data = await Deno.readFile(filePath); const decoder = new TextDecoder("utf-8"); const decodedData = decoder.decode(data); console.log(decodedData);
这里我们使用了Deno的标准库中Deno.readFile()
函数读取CSV文件,需要指定编码格式,最后得到的data
是一个Uint8Array
类型的对象,需要用TextDecoder
将其解码为可读的文本。得到的decodedData
就是CSV文件的内容。
当然,这种方式对于大文件可能会比较消耗内存,可以使用标准库中的Deno.open()
函数读取文件流进行分块读取。
-- -------------------- ---- ------- ----- -------- - ------------- ----- ---- - ----- ------------------- ------ ------- ----- ------ - --- ----------------- --- ------ --- ----------- - --- ----- ------- - ----- ------------------- - ----------- -- ----- - ----- - -------------------------展开代码
这里我们使用了Deno.open()
函数打开了文件流,通过TextReader
将其转换为可读的文本流。然后通过循环逐行读取文件内容,最后得到的就是整个CSV文件的内容了。
Deno 中写入 CSV 文件
类似的,在Deno中写入CSV文件也十分简单。我们可以使用标准库中的Deno.writeFile()
函数,将文本内容写入文件即可。
const filePath = "./data.csv"; const content = "name,age\nzhangsan,18\nlisi,25\n"; await Deno.writeFile(filePath, new TextEncoder().encode(content));
这里,我们首先需要指定CSV文件的路径,然后将文件内容存储在content
变量中,最后使用Deno.writeFile()
函数将其写入文件中。
使用第三方库解析 CSV 文件
当然,我们不必重新造轮子,Deno中也有一些第三方库可以解析CSV文件,这里介绍https://deno.land/x/csv/mod.ts
这个库。
首先,我们需要安装这个库。
deno install --name=csv https://deno.land/x/csv/mod.ts
然后,我们就可以愉快地使用这个库了。
import * as csv from "https://deno.land/x/csv/mod.ts"; const filePath = "./data.csv"; const file = await Deno.open(filePath, {read: true}); const result = await csv.parse(await Deno.readTextFile(filePath)); console.table(result);
这里,我们使用了csv.parse()
函数解析CSV文件,得到的result
就是一个二维数组,代表整个数据表格。然后,我们可以利用表格对数据进行操作,例如通过字段查询、筛选等。
总结
本文介绍了Deno中读写CSV文件的基本方法,以及使用第三方库解析CSV文件的技巧。当然,如何处理数据表格并使用表格来处理数据,也是一个非常重要的前端技能,希望读者能够通过本文进一步学习和掌握这方面的知识。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6641cf2dd3423812e4fce5eb