Python基于分隔符的文本数据存取

您所在的位置:网站首页 雁荡山风景区图片大全 Python基于分隔符的文本数据存取

Python基于分隔符的文本数据存取

#Python基于分隔符的文本数据存取| 来源: 网络整理| 查看: 265

Python基于分隔符的文本数据存取 CSV模块读写Numpy库读写使用pandas库读写三种方式的区别

基于分隔符的文本数据文件以行尾各条数据的分隔,以各种分隔符(同一个文本数据文件中通常只使用一种)作为一条数据内不同列(字段)的分隔,存储需要处理的数据。下面是分别使用TAB制表符、逗号、空格、竖线作为分隔符的四个文本数据文件的例子。 在这里插入图片描述

在Python中读写这类文件一般采用三种方法CSV模块、Numpy库、Pandas库。

CSV模块读写

(1)读取 reader()方法和writer()方法的delimiter参数指明了文件使用的分隔符。

import csv with open('竖线.txt', encoding='utf-8') as cf: lines = csv.reader(cf, delimiter='|') for line in lines: print(line)

在这里插入图片描述

(2)写入

import csv headers = ['姓名', '性别'] rows = [('张三', '男'), ('李四', '男'), ('王五', '男')] with open('test.txt', 'a+', encoding='utf-8', newline="")as fp: wf = csv.writer(fp) wf.writerow(headers) wf.writerows(rows)

在这里插入图片描述

Numpy库读写

(1)读取

import numpy as np data = np.loadtxt('竖线.txt', dtype=str, delimiter='|', unpack=False, encoding='utf-8') print(data)

在这里插入图片描述 通过结果可以看到,Numpy读取的结果数据类型是ndarry,与CSV模块读取得到的list。

loadtxt()函数

loadtxt(fname, dtype=, comments=‘#’, delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding=‘bytes’)

各参数含义如下:

fname:要读取的带路径的文件名,如文件后缀是.gz或.bz2,泽稳健将被解压,然后再载入。dtype:要读取的数据类型。comments:文件头部或尾部字符串的开头字符,用于识别头部或尾部字符串。delimiter:分隔字段(列)的字符串。converters:将某列使用特定函数处理。skiprows:跳过前若干行。usecols:获取某些列,如需要前三列则为usecols=(0,1,2)。unpack:取值为True时,每列数据以数组的形式返回。ndmin:指定读取文件后存储数据的数组最少应具有的ndarry维度。encoding:解码输入文件的字符集编码。

(2)写入

import numpy as np data = [['姓名', '性别'], ['张三', '男'], ['李四', '男'], ['王五', '男']] np.savetxt('test.txt', data, delimiter=',', newline='\n', fmt='%s, %s')

savetxt()函数

savetxt(fname, X, fmt=‘%.18e’, delimiter=’ ‘, newline=’\n’, header=‘’, footer=‘’, comments='# ', encoding=None)

各参数含义如下:

fname:要写入的带路径的文件名。X:要存储的移位或二维数组。fmt:控制数据存储的格式。delimiter:分隔字段(列)的字符串。newline:数据行之间的分隔符。header:文件头部写入的字符串。footer:文件末尾写入的字符串。comments:文件头部或者尾部字符串的开头字符串,默认为#。encoding:写入文件的字符集编码。 使用pandas库读写

(1)读取

import pandas as pd df = pd.read_csv('竖线.txt', delimiter='|') print(df)

在这里插入图片描述 (2)写入

import pandas as pd dic = {'姓名': ['张三', '李四', '王五'], '姓别': ['男', '男', '男']} df = pd.DataFrame(dic) df.to_csv('test.txt', index=False) 三种方式的区别 读取数据以后得到的数据类型,以及写入文件后的数据格式不同。主要功能和运行效率不同。CSV模块主要用于处理文本型数据的读写;而Pandas和Numpy的功能比CSV模块要强大很多,Numpy库主要用于面向高精度和高性能的计算,提供了大量统计相关的函数;Pandas库多用于时间序列的分析,可以便捷快速的处理大量连续性数据。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3