13次发布
0.3.4-beta.2 | 2024年1月21日 |
---|---|
0.3.3 | 2023年12月22日 |
0.3.3-rc1 | 2023年11月28日 |
0.3.2 | 2022年8月18日 |
0.3.1 | 2022年6月30日 |
#446 in 文本处理
44 每月下载量
用于 4 个Crates (3 直接)
2MB
2K SLoC
dcsv
动态csv读取器、编辑器和写入器库。
如果你使用结构化csv数据,请使用 csv crate
如果你想要更高层次的csv编辑封装,请使用 ced
功能
- 读取格式未定的csv文件
- 可选验证csv值
- 编辑csv值
- 写入文件
- 打印到表格
基本用法
参考 用法 了解更多用法。Docs.rs在一般情况下也很有用。
首先在 cargo.toml 文件中包含 dcsv。
[dependencies]
dcsv = "*"
// Trait VCont is required to use many methods
use dcsv::{Reader, VirtualData, Value, VCont};
use std::fs::File;
let data: VirtualData = Reader::new()
.use_delimiter(';') // Default is comma
.use_line_delimiter('|') // Default is '\n, \r\n'
.data_from_stream(
BufReader::new(
File::open("file_name.csv")
.expect("Failed to read file")
)
)
.expect("Failed to retrieve csv value from file");
// import VCont trait before use
// Refer docs.rs for various VirtualData methods
let value : Option<&Value> = data.get_cell(1,1);
为什么?
大多数时候,知名的csv crate性能更好且更易用,因为csv格式变化不大。然而,有些情况下程序期望处理未定的csv格式和内容,这意味着程序必须确保每个值都与期望的标准兼容。在这种情况下,csv crate的类型保证处理起来很痛苦。
请参阅用法示例。
尚未
- 完全兼容csv规范
依赖项
~2.4–3.5MB
~54K SLoC