c、python读取txt、csv文件数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

最仅实验数据处理中遇到了不同格式文件,需要读取文件中的数据


提示:以下是本篇文章正文内容,下面案例可供参考

一、txt格式文件

1.1 保存txt

1.1.1 c语言代码示例

#include <stdio.h>
#include <stdlib.h>		//stdlib 头文件,即standard library**标准库头文件**
int main()
{
    FILE *fp;//文件指针
    int i, d;

    /*文件的打开*/
    fp=fopen("data.txt","w");//fopen打开文件,这个文件可以是当前不存在的。“w”以写入的形式打开,“r”以读的形式打开
    if(fp==NULL) //判断如果文件指针为空
    {
        printf("File cannot open! " );
        exit(0);//在以0的形式退出,必须在文件开头有#include <stdlib.h>,stdlib 头文件即standard library标准库头文件
    }

    //写入东西
    for(i=0; i<10; i++)
    {
        scanf("%d", &d);//用户输入	c语言用户输入字符--转-->字节--转-->ascii码的十进制表示0~127
        fprintf(fp,"%d\t", d);//写入指针fp,写入的东西就是刚才的用户输入的d,注意这里的fp和d没有引号
    }

     //关闭文件
    fclose(fp);
    return 0;
}

1.2 读取txt数据

1.2.1 python代码示例

import numpy as np
import matplotlib.pyplot as plt

txt_path=gait_angle_100.txt		#txt文件路径
gait_hip_angle = []		    	# 读取数据指定为list
gait_knee_angle = []
    
if __name__ == '__main__':    
    try:
        file = open('txt_path', "r")	#以读模式打开文件
        # file = open('../35/gait_angle_100.txt',"r")     
    except FileNotFoundError:          #如果文件不存在,给提示
        print("file is not found")
    else:
        contents = file.readlines()       #读取全部行
        for content in contents:       #显示一行
            gait_hip_angle.append(float(content.split(' ')[0]))   #每行用逗号分隔后,取第一个元素
            gait_knee_angle.append(float(content.split(' ')[1]))   #每行用逗号分隔后,取第一个元素
	
	# 将list 转换成数组
    gait_hip_angle_arr = np.array(gait_hip_angle)
    gait_knee_angle_arr = np.array(gait_knee_angle)

二、csv格式文件

CSV 以逗号分隔值(字符分隔值);以纯文本形式存储数据表格,可由任意数目的记录组成,各条记录以某种换行符分隔开

2.1 保存csv

2.1.1 python代码示例

import csv	#库文件
csv_path='***.csv'
with open('ccsv_path','w') as csvfile_name:
    writer=csv.writer(csvfile_name)	#writer函数 初始化写入对象,以逗号分隔字段
#1、writerow函数 以列表的形式 传入*单行*数据
    writer.writerow(['id','name','age'])	
    writer.writerow(['1','a','20'])
    writer.writerow(['2','b','21'])
    writer.writerow(['3','c','22'])
#2、writerows函数 以二维列表的形式 传入*多行*数据
    writer.writerows([['1','a','20'],['2','b','21'],['3','c','22']])

#以字典的形式写入
    fieldnames = ['id', 'name', 'age']
    writer=csv.DictWriter(csvfile_name,fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'id':'1','name':'a','age':'20'})

2.1.2 c代码示例

#include <stdio.h>
#include <stdlib.h>
int main()
{
    FILE *fp;//文件指针
    int i, No;
    float salary;

    /*文件的打开*/
    fp=fopen("data.csv","w");//csv文件可以直接用excel打开
    if(fp==NULL) //判断如果文件指针为空
    {
        printf("File cannot open! " );
        exit(0); //在以0的形式退出,必须在文件开头有#include <stdlib.h>,stdlib 头文件即standard library标准库头文件
    }

    //写入东西
    for(i=0; i<5; i++)
    {
        scanf("%d %f", &No,&salary);//用户出入
        fprintf(fp,"%d,%.2f\n", No,salary);//!!!!!尤其注意这里要用逗号隔开,因为excel表里面就默认识别逗号隔开的才能分类fprintf(文件指针,格式字符串,列表)                     
 } //关闭文件 fclose(fp); return 0;}

2.2 读取csv文件数据

2.2.1 python代码如下(示例):

#pandas读取
import pandas as pd			#读取csv需要的库文件
import numpy as np			#数组库文件
#csv文件路径
csv_path = '*******.csv'

df_c1 = pd.read_csv(csv_path, skiprows=605, nrows=813)	#参数skiprows表示略过行数,nrows表示读取行数
F1x = df_c1["800"]			#“800”表示对应列的名称,读取一列
F1y = df_c1["700"]
F1 = np.asarray([F1x, F1y])		#数据保存成数组

#为了方便下次使用存储数据,一般将数据保存为.npz格式的数据文件
np.savez('F1_dataname.npz', date=F1)	#保存成.npz
F1_xy = np.load('F1_dataname.npz')['date']	#加载.npz文件

2.2.2 c代码示例


总结

通过对不同文件的数据读取,可以很方便的拿来处理。后面遇到不同格式的文件还会继续更新……

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值