csv icon indicating copy to clipboard operation
csv copied to clipboard

Suggestion to add `sep` option

Open kojix2 opened this issue 2 years ago • 2 comments

Hi! CSV developers!

Currently, the col_sep option is used in Ruby's CSV library,

CSV.open("nice.tsv", col_sep: "\t")

but it requires 8 keystrokes. sep requires only 3 keystrokes.

The reason col_sep exists is because the row_sep option exists. However, row_sep is used much less frequently than col_sep.

Using sep as an alias for col_sep would make using the CSV library a little easier and more enjoyable.

Many R and Python libraries use sep in the sense of col_sep. For example, pandas can read a tsv file as follows

import pandas as pd

df = pd.read_csv(file_path, sep="\t")

In pandas, delimiter is an alias for sep. It is not uncommon for sep options to have aliases in this way.

It took some courage to make such a proposal to a library with such a long history as CSV.

Thanks for reading.

kojix2 avatar Jan 27 '23 09:01 kojix2

We may want to add TSV class that uses \t as the default column separator.

kou avatar Jan 27 '23 20:01 kou

I thought about it, and basically I agree.

Use col_sep all the time, but never needed to set row_sep explicitly.

wtn avatar Sep 03 '24 18:09 wtn

We can use CSV::TSV.open("nice.tsv").

kou avatar Nov 25 '24 09:11 kou