- Rust and CSV parsing 译文(用 Rust 实现 csv 解析-part6)
- 原文链接:https://blog.burntsushi.net/csv/
- 原文作者:BurntSushi
- 译文来自:https://github.com/suhanyujie/article-transfer-rs/
- 译者:suhanyujie
- 译者博客:suhanyujie
- ps:水平有限,翻译不当之处,还请指正。
- 标签:Rust,csv
写入 tab 分隔符的值
在前面的章节中,我们了解了如何将 CSV 数据输出到标准输出中,如下:
City,State,Population,Latitude,Longitude
Davidsons Landing,AK,,65.2419444,-165.2716667
Kenai,AK,7610,60.5544444,-151.2583333
Oakman,AL,,33.7133333,-87.3886111
你可能会想:如果都是这么简单地数据,那使用 CSV writer 还有什么意义?CSV writer 的好处是,它能处理所有类型的数据,而不会牺牲数据的完整性。也就是说,它知道何时引用包含特殊 CSV 字符的字段(如逗号或者换行),或在数据中出现的转义字面量引号。CSV writer 还可以方便地配置使用不同地分隔符或引用策略。
在这一节中,我们将看看如何调整 CSV writer 上的设置。特别地,我们将使用 TSV(“制表符分割值”)来替代 CSV,并且我们要求 CSV writer 引用所有非数字字段。这里有一个例子:
fn run() -> Result<(), Box<Error>> {
let mut wtr = csv::WriterBuilder::new()
.delimiter(b'\t')
.quote_style(csv::QuoteStyle::NonNumeric)
.from_writer(io::stdout());
wtr.write_record(&["City&