1. 假设对以下nba.csv文件进行读取

姓名,团队,号码,职位,年龄,身高,体重,大学,薪水
埃弗里·布拉德利,波士顿凯尔特人队,0.0,PG,25.0,6-2,180.0,Texas,7730337.0
杰·克劳德,波士顿凯尔特人队,99.0,SF,25.0,6-6,235.0,马奎特,6796117.0
约翰·霍兰,波士顿凯尔特人队,30.0,SG,27.0,6-5,205.0,波士顿大学,
R.J. 亨特,波士顿凯尔特人队,28.0,SG,22.0,6-5,185.0,佐治亚州,1148640.0
杰雷布科,波士顿凯尔特人队,8.0,大前锋,29.0,6-10,231.0,,5000000.0
阿米尔约翰逊,波士顿凯尔特人队,90.0,大前锋,29.0,6-9,240.0,,12000000.0
乔丹米奇,波士顿凯尔特人队,55.0,PF,21.0,6-8,235.0,LSU,1170960.0
凯利奥利尼克,波士顿凯尔特人队,41.0,中锋,25.0,7-0,238.0,冈萨加,2165160.0
  • 其对应的表格展示如下:
    姓名 团队 号码 职位 年龄 身高 体重 大学 薪水
    埃弗里·布拉德利 波士顿凯尔特人队 0.0 PG 25.0 6-2 180.0 Texas 7730337.0
    杰·克劳德 波士顿凯尔特人队 99.0 SF 25.0 6-6 235.0 马奎特 6796117.0
    约翰·霍兰 波士顿凯尔特人队 30.0 SG 27.0 6-5 205.0 波士顿大学
    R.J. 亨特 波士顿凯尔特人队 28.0 SG 22.0 6-5 185.0 佐治亚州 1148640.0
    杰雷布科 波士顿凯尔特人队 8.0 大前锋 29.0 6-10 231.0 5000000.0
    阿米尔约翰逊 波士顿凯尔特人队 90.0 大前锋 29.0 6-9 240.0 12000000.0
    乔丹米奇 波士顿凯尔特人队 55.0 PF 21.0 6-8 235.0 LSU 1170960.0
    凯利奥利尼克 波士顿凯尔特人队 41.0 中锋 25.0 7-0 238.0 冈萨加 2165160.0

2. 配置安装库CSV

  • 可直接在Cargo.toml文件中dependencies下方的添加csv = "1.1",也可通过cargo add csv命令安装
[dependencies]
csv = "1.1"

3. 读取CSV文件

use std::error::Error;

use csv;

fn read_from_file(path: &str) -> Result<(), Box<dyn Error>> {
let mut reader = csv::Reader::from_path(path)?;

for result in reader.records() {
let record = result?;
println!("{:?}", record);
}
Ok(())
}

fn main() {
if let Err(e) = read_from_file("./nba.csv") {
eprintln!("{}", e);
}
}

4. 上述代码输出内容如下

StringRecord(["埃弗里·布拉德利", "波士顿凯尔特人队", "0.0", "PG", "25.0", "6-2", "180.0", "Texas", "7730337.0"])
StringRecord(["杰·克劳德", "波士顿凯尔特人队", "99.0", "SF", "25.0", "6-6", "235.0", "马奎特", "6796117.0"])
StringRecord(["约翰·霍兰", "波士顿凯尔特人队", "30.0", "SG", "27.0", "6-5", "205.0", "波士顿大学", ""])
StringRecord(["R.J. 亨特", "波士顿凯尔特人队", "28.0", "SG", "22.0", "6-5", "185.0", "佐治亚州", "1148640.0"])
StringRecord(["杰雷布科", "波士顿凯尔特人队", "8.0", "大前锋", "29.0", "6-10", "231.0", "", "5000000.0"])
StringRecord(["阿米尔约翰逊", "波士顿凯尔特人队", "90.0", "大前锋", "29.0", "6-9", "240.0", "", "12000000.0"])
StringRecord(["乔丹米奇", "波士顿凯尔特人队", "55.0", "PF", "21.0", "6-8", "235.0", "LSU", "1170960.0"])
StringRecord(["凯利奥利尼克", "波士顿凯尔特人队", "41.0", "中锋", "25.0", "7-0", "238.0", "冈萨加", "2165160.0"])