linux下的CSV文件操作

本文简要介绍了CSV文件的格式特点,并通过实例演示了如何使用C语言进行CSV文件的读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先介绍一下什么是csv文件,这是一种简单的文本文件,也被称为逗号分隔值文件。

主要是用于存储简单的数据,下面在weindows下用UE简单生成一下文件。


然后用excel打开


这就是一个简单的csv文件,每个字符都是一个ANSI码,图中的第一行,1,2,3,4,5,7。

1~7每一个都是一个ANSI码,一个逗号也是ANSI码。

第二行的12,13,434,45,56,747,“12”存储的是两个ANSI码,而“747”则存储了三个ANSI码,他们之间以逗号分隔。

类似的,第三行的“a”是一个ANSI码,“cd”是两个ANSI码。

也就是说,无论每一个逗号分隔的一个数值是多大,每一个值都是一个字符,如果换个理解方式就是,csv文件是一个很长很长的字符串。

然后是文件的大小,这个文件的大小是49字节。


通过直接数字符的方式,发现只有45个字符,包括所有逗号,多出了4个字节。

多出的四个字节在UE中看不到,这其实是windows独有的换行符“\r\n”,占了两个字符,45加上第一行和第二行的换行符就得到了49个字节的大小。

然后是关于文件名,windows默认文件名长256个字节,大小是固定的,但是不会再属性里面体现出来。

备注:linux的换行符是“\n”,占一个字符。


好了,关于csv文件的介绍到此结束。

下面是关于文件操作介绍,主要用到stdio.h这个文件头,这个是标准输入输出的一个头包含文件,为什么会将文件的操作放在标准输入输出的头包含文件里面,而不是重新创建一个file.h,按照《c语言程序设计——现代方法》的说法,所有的输入输出都是一种流,输入称为输入流,输出称为输出流,文件的读操作称为输入流,写操作称为输出流,就像往屏幕上打印东西称为输出流,键盘输入称为输入流,一切与系统的交互,本质上都是一种输入输出的行为。

然后是打开linux,用vim生成一个test.c文件,然后键入如下代码

#include "stdio.h"

int main(void)
{
	FILE *f0;
	char array[] = "1,2,3,4,5,7\n12,13,434,56,747\na,b,cd,efg,h,ij";
	char array0[100];
	
	if(NULL == (f0=fopen("/home/ma/TEST/ma.csv","a")))//打开一个ma.csv文件,
	{                                                 //如果不存在就创建
		printf("can't  not open file\n");
	}
	else
	{
		printf("Created file succeed!\n");//创建成功就输出这句话
		fwrite(array,sizeof(array),1,f0);//给文件写入array数组
		fread(array0,sizeof(array),1,f0);//然后将文件内容读取到array0中
		printf("%s\n",array0);//输出文件内容
		fclose(f0);//关闭文件
	}
}

在linux下的操作截图如下



先用gcc 编译test.c,生成a.out,然后强制执行a.out,这里有个小细节,在linux下,生成的a.out文件一般用户是没有执行权限的,如果不限输入sudo的话,需要对当前的文件夹获取写入权限,使用chmod这个命令。执行a.out之后,生成了一个ma.csv文件,再说一件事,在linux下,一切都是文件,而文件名仅仅是一个标识符,"*.csv"是没有意义的,不要在意拓展名是啥,这仅仅起到一个关联执行程序的意义,对真实的文件内容没有啥关系。


好了,这是一个简单的文件操作入门,具体的文件操作函数我就不介绍了,请参考 《c语言程序设计——从入门到放弃》。


写于2017年5月27日 

深圳





### 回答1: 在Linux中创建CSV文件,可以通过以下步骤实现: 1. 打开终端,进入要创建CSV文件的目录。 2. 使用文本编辑器(如vi、nano等)创建一个新文件文件名以.csv结尾,例如:test.csv。 3. 在文件中输入数据,每个数据之间用逗号 ### 回答2: CSV全称是Comma Separated Values,逗号分隔值,在计算机中常用来储存表格数据。在Linux系统中,创建CSV文件可以通过多种方法实现。 一、使用文本编辑器创建CSV文件Linux系统中常用的文本编辑器有nano、vim、gedit等。打开任意一个文本编辑器,创建一个新文件。在该文件中输入数据,每一列之间使用逗号分隔,每一行之间以回车键分隔。例如: Name,Age,Gender Bob,25,Male Alice,30,Female 将该文件保存为CSV格式,命名为example.csv,即可创建一个简单的CSV文件。 对于较长的数据表格或需要修改的文件,可以使用spreadsheets软件,如LibreOffice Calc或KOffice KSpread等,生成或编辑CSV文件。 二、使用命令行创建CSV文件 1. 通过echo命令 echo "Name,Age,Gender" >> example.csv echo "Bob,25,Male" >> example.csv echo "Alice,30,Female" >> example.csv 这三行命令用于将数据按行添加到example.csv文件中,即可创建一个CSV文件。 2. 通过awk命令 awk -F "," 'BEGIN {print "Name,Age,Gender"} {print "Bob,25,Male"; print "Alice,30,Female"}' > example.csv 使用awk命令可以更快速地创建CSV文件。-F参数是以什么符号进行分割。例如,-F类型以逗号分割,-F "\t"类型以制表符进行分割。 BEGIN指的是开头的应该打印什么,这里是“Name,Age,Gender”,{}中则是打印数据。最后的example.csv即为文件名称。 以上就是在Linux系统中创建CSV文件的两种主要方法。无论使用哪种方法,创建CSV文件时需注意数据之间的分隔符和数据格式的正确性。这样,在Linux系统中创建CSV文件就不会有任何问题了。 ### 回答3: CSV(Comma-Separated Values)是一种常用的数据文件格式,其每行代表一条记录,各个字段之间用逗号分隔,可以使用Excel等软件轻松打开和编辑。 在Linux中,我们可以使用多种方式创建CSV文件,下面介绍一些常见的方法: 1. 使用文本编辑器创建CSV文件 Linux中自带vi、nano等文本编辑器,可以使用这些编辑器创建CSV文件。在编辑器中输入数据,每个字段之间用英文逗号(,)分隔,然后保存为.csv格式的文件即可创建CSV文件。 2. 使用命令行工具创建CSV文件 Linux中自带多种命令行工具,如echo、printf等,这些工具可以用来生成CSV文件数据。例如,使用echo命令生成一个包含三个字段的CSV文件,命令如下: echo "字段1,字段2,字段3" > test.csv 这样就可以创建一个名为test.csvCSV文件。 3. 使用Python脚本创建CSV文件 Python是一种通用编程语言,可以用来自动化创建CSV文件。下面是一个简单的Python脚本,用来生成一个包含五条记录的CSV文件: import csv with open('test.csv', 'w') as file: writer = csv.writer(file) writer.writerow(['编号', '姓名', '年龄', '性别', '地址']) writer.writerow(['001', '张三', '18', '男', '北京']) writer.writerow(['002', '李四', '20', '男', '上海']) writer.writerow(['003', '王五', '22', '男', '广州']) writer.writerow(['004', '赵六', '24', '男', '深圳']) writer.writerow(['005', '小明', '26', '男', '成都']) 这个脚本使用Python内置的csv模块,通过writerow()方法生成每一条记录,并保存为.csv格式的文件(test.csv)。 无论是使用哪种方式创建CSV文件,都需要注意一些细节,如各个字段之间要使用英文逗号(,)分隔,文件名要以.csv为后缀,文件编码要统一等等。希望本文对读者在Linux环境下创建CSV文件有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值