11个版本
使用旧的Rust 2015
0.5.2 | 2023年5月4日 |
---|---|
0.5.1 | 2021年4月25日 |
0.5.0 | 2021年1月30日 |
0.4.1 | 2020年3月6日 |
0.3.1 | 2018年10月30日 |
#149 在 图形API 中
4,273 每月下载量
在 24 个包中使用 (直接使用11个)
14KB
244 行
ndarray-csv
轻松读取和写入均匀CSV数据到2D ndarrays。
extern crate csv;
extern crate ndarray;
extern crate ndarray_csv;
use csv::{ReaderBuilder, WriterBuilder};
use ndarray::{Array, Array2};
use ndarray_csv::{Array2Reader, Array2Writer};
use std::error::Error;
use std::fs::File;
fn main() -> Result<(), Box<dyn Error>> {
// Our 2x3 test array
let array = Array::from(vec![1, 2, 3, 4, 5, 6]).into_shape((2, 3)).unwrap();
// Write the array into the file.
{
let file = File::create("test.csv")?;
let mut writer = WriterBuilder::new().has_headers(false).from_writer(file);
writer.serialize_array2(&array)?;
}
// Read an array back from the file
let file = File::open("test.csv")?;
let mut reader = ReaderBuilder::new().has_headers(false).from_reader(file);
let array_read: Array2<u64> = reader.deserialize_array2((2, 3))?;
// Ensure that we got the original array back
assert_eq!(array_read, array);
Ok(())
}
此项目使用 cargo-make 进行构建;要构建,请运行 cargo make all
。
为防止拒绝服务攻击,不要读取未信任的CSV流的无界长度;可以使用 std::io::Read::take
实现。
许可证:MIT/Apache-2.0
依赖项
~3MB
~46K SLoC