下面是我的设置:
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
我希望我在做一些完全愚蠢的事情,但对于我的生活,我无法弄清楚它。
1条答案
按热度按时间rqqzpn5f1#
您的csv数据在逗号后面包含多余的空格,因此Rusts
csv
认为Height(Inches)
周围的引号是标题的一部分,而不是为了转义它们。请看这个删除了空格的Playground,它按照您的预期解析了csv。