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

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

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

image.png

在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)
复制代码


image.png


(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)
复制代码

image.png


Numpy库读写


(1)读取

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

image.png


通过结果可以看到,Numpy库读取的结果和CSV模块读取的结果不同;Numpy读取的结果数据类型是ndarry,与CSV模块读取得到的list不同。

loadtxt()函数

loadtxt(fname, dtype=<class 'float'>, 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)
复制代码

image.png


(2)写入

import pandas as pd
dic = {'姓名': ['张三', '李四', '王五'], '姓别': ['男', '男', '男']}
df = pd.DataFrame(dic)
df.to_csv('test.txt', index=False)
复制代码


三种方式的区别


  1. 读取数据以后得到的数据类型,以及写入文件后的数据格式不同。
  2. 主要功能和运行效率不同。CSV模块主要用于处理文本型数据的读写;而PandasNumpy的功能比CSV模块要强大很多,Numpy库主要用于面向高精度和高性能的计算,提供了大量统计相关的函数;Pandas库多用于时间序列的分析,可以便捷快速的处理大量连续性数据。



相关文章
|
2月前
|
Python
python 找到并去除文本中的全部链接
这篇文章提供了一个使用Python正则表达式找到并删除文本中所有链接的代码示例。
|
2月前
|
数据采集 算法 数据可视化
基于Python的k-means聚类分析算法的实现与应用,可以用在电商评论、招聘信息等各个领域的文本聚类及指标聚类,效果很好
本文介绍了基于Python实现的k-means聚类分析算法,并通过微博考研话题的数据清洗、聚类数量评估、聚类分析实现与结果可视化等步骤,展示了该算法在文本聚类领域的应用效果。
|
8天前
|
Linux 开发者 iOS开发
Python中使用Colorama库输出彩色文本
Python中使用Colorama库输出彩色文本
|
21天前
|
XML 数据格式 Python
Python技巧:将HTML实体代码转换为文本的方法
在选择方法时,考虑到实际的应用场景和需求是很重要的。通常,使用标准库的 `html`模块就足以满足大多数基本需求。对于复杂的HTML文档处理,则可能需要 `BeautifulSoup`。而在特殊场合,或者为了最大限度的控制和定制化,可以考虑正则表达式。
24 12
|
16天前
|
存储 监控 数据处理
💻Python高手必备!文件系统操作秘籍,让你的数据存取如臂使指
在数据驱动时代,Python凭借简洁的语法、丰富的库生态及强大的跨平台能力,成为数据科学、自动化脚本及系统编程的首选语言。本文深入探讨Python文件系统操作技巧,涵盖基础的文件与目录控制、高效读写策略及实战中的文件监控与并发I/O处理。通过os和pathlib模块,你将学会如何递归遍历目录、优化大文件读写,并利用watchdog和concurrent.futures提升数据处理效率。掌握这些秘籍,助你在数据存取领域游刃有余。
17 2
|
16天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
20 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
22天前
|
机器学习/深度学习 自然语言处理 算法
使用Python实现简单的文本情感分析
【9月更文挑战第13天】本文将介绍如何使用Python编程语言进行基础的文本情感分析。我们将通过一个简单的例子,展示如何利用自然语言处理库nltk和机器学习库sklearn来实现对文本数据的情感倾向性判断。文章旨在为初学者提供一个入门级的指导,帮助他们理解并实践文本情感分析的基本步骤和方法。
23 6
|
1月前
|
Python
在Python中,文本查找和替换的常用操作
在Python中,文本查找和替换的常用操作,使用字符串方法进行查找和替换,使用正则表达式进行查找和替换,对所查找到的内容进行计数。
19 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【自然语言处理】python之人工智能应用篇——文本生成技术
文本生成是指使用自然语言处理技术,基于给定的上下文或主题自动生成人类可读的文本。这种技术可以应用于各种领域,如自动写作、聊天机器人、新闻生成、广告文案创作等。
53 8
|
2月前
|
存储 自然语言处理 数据可视化
【python】python水浒传小说文本分析词云可视化(源码+文本+报告)【独一无二】
【python】python水浒传小说文本分析词云可视化(源码+文本+报告)【独一无二】
下一篇
无影云桌面