首页
/ INI 格式解析与序列化工具技术文档

INI 格式解析与序列化工具技术文档

2024-12-24 08:18:41作者:曹令琨Iris

1. 安装指南

环境要求

  • Node.js 版本 >= 12.x

安装步骤

  1. 打开终端或命令行工具。
  2. 使用 npm 或 yarn 安装该工具:
npm install ini-parser-serializer

yarn add ini-parser-serializer

2. 项目使用说明

基本使用

该工具允许你读取、修改和写入 INI 格式的文件。以下是一个基本的使用示例:

import { writeFile, readFile } from 'node:fs/promises';
import { stringify, parse } from 'ini-parser-serializer';

// 读取 INI 文件
let text = await readFile('./Original.ini', {
    encoding: 'utf-8'
});

// 解析文本数据为对象
const config = parse(text);

// 修改数据对象
config.scope = 'local';
config.database.database = 'use_another_database';
config.paths.default.tmpdir = '/tmp';
delete config.paths.default.datadir;
config.paths.default.array.push('fourth value');

// 将数据对象序列化为 INI 格式
text = stringify(config, {
    section: 'section'
});

// 写入修改后的 INI 文件
await writeFile('./Modified.ini', text);

示例 INI 文件

; 这是一个被忽略的注释
scope = global

[database]
user = dbuser
password = dbpassword
database = use_this_database

[paths.default]
datadir = /var/lib/data
array[] = first value
array[] = second value
array[] = third value

修改后的 INI 文件

[section]
scope=local
[section.database]
user=dbuser
password=dbpassword
database=use_another_database
[section.paths.default]
tmpdir=/tmp
array[]=first value
array[]=second value
array[]=third value
array[]=fourth value

3. 项目 API 使用文档

parse

将给定的 INI 字符串转换为嵌套的数据对象。

const object = parse(`<INI Text>`);

stringify

将给定的数据对象编码为 INI 格式的字符串。

stringify(object, {
    whitespace: false, // 是否在 `=` 前后插入空格
    align: false,      // 是否对齐 `=` 字符
    section: 'section', // 全局项的标识符
    sort: false,       // 是否按字母顺序排序
    newline: false,    // 是否在每个节头后插入换行符
    platform: 'win32', // 使用的换行符平台
    bracketedArray: true // 是否在数组键后附加 `[]`
});

safe / unsafe

将给定的字符串转换为在 INI 文件中安全使用的键或值,或反向操作。

safe(`"unsafe string"`); // -> \"unsafe string\"
unsafe(`\\"safe string\\"`); // -> "safe string"

4. 项目安装方式

通过 npm 或 yarn 安装:

npm install ini-parser-serializer

yarn add ini-parser-serializer

安装完成后,你可以在项目中导入并使用该工具。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
16
docsdocs
暂无描述
Markdown
843
5.65 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
835
1.27 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.04 K
2.44 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
841
1.67 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
507
540
flutter_flutterflutter_flutter
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.13 K
304
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
497
339
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.24 K
1.36 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.15 K
845