想象一个文本文件,其中每个csv记录可能具有不同数量的字段。任务是编写代码以输出文件的每个记录中有多少个字段。您可以假设文件中没有标题行,并且可以选择从文件或标准输入中读取内容。
您可以为csv规则假设使用rfc4180版本,以下将为文件的每一行定义进行解释。这是该规范相关部分的轻松编辑版本:
CSV格式的定义
每个记录位于单独的行上,并由换行符(CRLF)分隔。例如:
aaa,bbb,ccc CRLF zzz,yyy,xxx CRLF文件中的最后一条记录可能有也可能没有换行符。例如:
aaa,bbb,ccc CRLF zzz,yyy,xxx
(规则3.不适用于本挑战)
在每个记录中,可能会有一个或多个字段,以逗号分隔。空格被视为字段的一部分,不应忽略。
每个字段可能会或可能不会用双引号引起来。如果字段没有用双引号引起来,则双引号可能不会出现在字段内。例如:
"aaa","bbb","ccc" CRLF zzz,yyy,xxx包含换行符(CRLF),双引号和逗号的字段应用双引号引起来。例如:
"aaa","b CRLF bb","ccc" CRLF zzz,yyy,xxx如果使用双引号将字段括起来,则必须在字段内部出现双引号,方法是在其前面加上另一个双引号,以对其进行转义。例如:
"aaa","b""bb","ccc"
例
输入:
,"Hello, World!"
"aaa","b""bb","ccc"
zzz,yyy,
"aaa","b
bb","ccc","fish",""
应该给出输出:
2, 3, 3, 5
您可以使用最方便的任何方式提供输出值。
图书馆
您可以使用任何喜欢的库。
到目前为止,真棒答案,但是我们缺少命令行/ bash答案,这将特别酷。