Python | .txt / .csv文件读取

简介

做一个竞赛时,第一步处理竞赛给出的数据文件。编写程序时才发现,给定的.csv文件用 csv.reader处理后,某一列的数据本应为m*n的矩阵,实际显示结果为一个由[],[]等组成的长字符串!

。。。

本来是用字符串分割函数strip将二维数据分开。但是程序写的很麻烦,后来直接在MATLAB里将.csv文件转换为.txt文件,再在python里调用了。

这里总结python读取.csv.txt文件的写法,以及在读取后,如何将字符串转换为矩阵。具体MATLAB的程序,不在此处附出。

1. python 读取.csv文件

目的:
实现一个csv文件的读取,并且将其中的由二维矩阵组成的长字符串切割,转换为想要的二维矩阵,最后用一个列表存储所有的二维矩阵。

程序:

import csv
birth_weight_file = '***.csv'  # 文件名

# 处理文件:将图形的坐标提取出来
data = []  # 存储所有图形的坐标点
with open(birth_weight_file) as csvfile:

    csv_reader = csv.reader(csvfile)  # 使用csv.reader读取csvfile中的文件
    birth_header = next(csv_reader)  # 读取第一行每一列的标题

    # 将csv 文件中的数据保存到birth_data中
    for row in csv_reader:
        data_row = []  # 存储每一行的数据
        data_location = row[3]  # 读取第4列数据

        # 字符串分割
        dlist = data_location.strip('[').strip(']')  # strip:只能去除字符串首尾的特定字符
        dlist = dlist.split(',')  # split:字符串分隔符
        for x in dlist:
            dlist2 = x.strip(' [').strip(']')  # 二次字符串分割
            dfloat = float(dlist2)  # 将str转换为浮点型
            data_row.append(dfloat)

        data_row_array = np.array(data_row).reshape([int(len(data_row)/2),2])  # 转换为二维矩阵
        data.append(data_row_array)

2. python读取.txt文件

目的:
实现.txt文件的读取,其中每一行的字符串均代表一个二维矩阵。每一个二维矩阵用\n隔开。

程序:

data = []
with open('***.txt','r') as f:
    dstr = f.read()
    dlist = dstr.split('\n')  # split:字符串分隔符
    for x in dlist:
        data_row = []
        dlist2 = x.split(' ')  # split:字符串分隔符
        for y in dlist2:
            dfloat = float(y)
            data_row.append(dfloat)
        data_row_array = np.array(data_row).reshape([int(len(data_row)/2),2])  # 转换为二维数组
        data.append(data_row_array)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值