CSV文件介绍
supermgr
简介
CSV全称 Comma Separated values,是一种用来存储数据的纯文本
文件格式,通常用于电子表格或数据库软件。
规则
0 开头是不留空,以行为单位。
1 可含或不含列名,含列名则居文件第一行。
2 一行数据不垮行,无空行。
3 以半角符号,作分隔符,列为空也要表达其存在。
4 列内容如存在,,则用“”包含起来。
5 列内容如存在“”则用“”“”包含。
6 文件读写时引号,逗号操作规则互逆。
7 内码格式不限,可为ASCII、Unicode或者其他。
______________________________________________
from IT wiki
CSV其实就是COMMA SEPARATED VALUE的缩写,出现在档案总管中的档案类型是「逗号分格」,依计算机原来的设定,如果直接点选该档案,计算机将以EXCEL的模式开启该档案。 但建议您千万不要这么做,因为CSV档如果以EXCEL开启,由于计算机档案数据转换的原因,会将其CRC之数值改做科学记号方式储存,而造成档案中的CRC值发生错误。 这也是笔者初出茅庐时所得到的惨痛经验,但如果想一窥CSV档的真实面貌,笔者建议您使用WORDPAD或是记事本(NOTE)来开启,再则先另存新档后用EXCEL开启,也是方法之一。 开启后的CSV档包含了四或五个字段(部分),由左至右分别记载着:文件名称(XXXX.JPG)、档案大小(以BYTE为单位)、CRC32值(八个英文字母或数字组成)、档案路径(档案储存的子目录名称)和档案内容描述(一般来说都是明星的英文姓名甚或是专辑名称,也可能空白)。 而其中第四栏「档案路径」因为每个人储存整理图档的方式不同,所以本栏通常不存在,而一般有含有「档案路径」这栏的CSV档,又称为ECSV档案
ruby 读写CSV文件
CSV.open('data.csv','w') do |data|
data<<['name','ext','room']
data<<['Al','123','1']
data<<['Ed','122','2']
data<<['Ann','121','3']
end
data.csv的内容:
name,ext,room
Al,123,1
Ed,122,2
Ann,121,3
print 'enter a csv file to print '
filename= gets.chomp
CSV.open(filename,'r') do |data|
p data
end
C:/Users/linda/Documents>ruby write_csv.rb
enter a csv file to print write.csv
["1", "2.392857143"]
["2", "4.785714286"]
["3", "7.178571429"]
["4", "9.571428571"]
["5", "11.96428571"]
["6", "14.35714286"]
["7", "16.75"]
["8", "19.14285714"]
["9", "21.53571429"]
["10", "23.92857143"]
["11", "26.32142857"]
["12", "28.71428571"]
["13", "31.10714286"]
["14", "33.5"]
["15", "35.89285714"]
["16", "38.28571429"]
["17", "40.67857143"]
["18", "43.07142857"]
["19", "45.46428571"]
CSV::open
CSV::open(path, mode, fs = nil, rs = nil, & block)
-----------------------------------------------------------------------
Open a CSV formatted file for reading or writing.
For reading.
EXAMPLE 1
CSV.open( 'csvfile.csv', 'r') do |row|
p row
end
EXAMPLE 2
reader = CSV.open('csvfile.csv', 'r')
row1 = reader.shift
row2 = reader.shift
if row2.empty?
p 'row2 not find.'
end
reader.close
ARGS
filename: filename to parse.
col_sep: Column separator. ?, by default. If you want to separate
fields with semicolon, give ?; here.
row_sep: Row separator. nil by default. nil means " or ". If you
want to separate records with r, give ? r here.
RETURNS
reader instance. To get parse result, see CSV::Reader#each .
For writing.
EXAMPLE 1
CSV.open( 'csvfile.csv', 'w') do |writer|
writer << ['r1c1', 'r1c2']
writer << ['r2c1', 'r2c2']
writer << [nil, nil]
end
EXAMPLE 2
writer = CSV.open('csvfile.csv', 'w')
writer << ['r1c1', 'r1c2'] << ['r2c1', 'r2c2'] << [nil, nil]
writer.close
ARGS
filename: filename to generate.
col_sep: Column separator. ?, by default. If you want to separate
fields with semicolon, give ?; here.
row_sep: Row separator. nil by default. nil means " or ". If you
want to separate records with r, give ? r here.
RETURNS
writer instance. See CSV::Writer#<< and CSV::Writer#add_row to know how
to generate CSV string .