使用Rust的CSV板条箱发布打印标题

bsxbgnwa  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(135)

下面是我的设置:
1.我正在读取一个csv文件,该文件的路径作为一个参数传递到构建的exe中,并且我正在使用crate Clap
1.这一切读取文件没有问题,但我有麻烦打印标题。
1.我希望能够打印不带引号的标题,但是当我打印时,只有第一个标题/列不带引号,其余的标题/列不带引号。
1.我的意思是:
这是打印标题的代码部分:

let mut rdr = csv::Reader::from_path(file)?;

let column_names = rdr.headers();

println!("{}", match column_names {
        Ok(v) => v.as_slice(),
        Err(_) => "Error!"
});

这样,输出结果如下所示:

warning: `csv_reader` (bin "csv_reader") generated 2 warnings
    Finished release [optimized] target(s) in 0.13s
     Running `target\release\csv_reader.exe -f C:\nkhl\Projects\dataset\hw_25000.csv`
Index "Height(Inches)" "Weight(Pounds)"
()

正如你所看到的,* Index * 没有打印引号,这是我希望其他的打印方式。
一个二个一个一个
CSV可在此处找到:https://people.sc.fsu.edu/~jburkardt/data/csv/hw_25000.csv
它看起来是这样的:

"Index", "Height(Inches)", "Weight(Pounds)"
1, 65.78331, 112.9925
2, 71.51521, 136.4873
3, 69.39874, 153.0269

我希望我在做一些完全愚蠢的事情,但对于我的生活,我无法弄清楚它。

rqqzpn5f

rqqzpn5f1#

您的csv数据在逗号后面包含多余的空格,因此Rustscsv认为Height(Inches)周围的引号是标题的一部分,而不是为了转义它们。
请看这个删除了空格的Playground,它按照您的预期解析了csv。

相关问题