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库多用于时间序列的分析,可以便捷快速的处理大量连续性数据。



相关文章
|
3月前
|
Python
python 找到并去除文本中的全部链接
这篇文章提供了一个使用Python正则表达式找到并删除文本中所有链接的代码示例。
|
18天前
|
机器学习/深度学习 自然语言处理 API
如何使用阿里云的语音合成服务(TTS)将文本转换为语音?本文详细介绍了从注册账号、获取密钥到编写Python代码调用TTS服务的全过程
如何使用阿里云的语音合成服务(TTS)将文本转换为语音?本文详细介绍了从注册账号、获取密钥到编写Python代码调用TTS服务的全过程。通过简单的代码示例,展示如何将文本转换为自然流畅的语音,适用于有声阅读、智能客服等场景。
74 3
|
1月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
50 2
|
1月前
|
机器学习/深度学习 自然语言处理 大数据
使用Python进行文本情感分析
【10月更文挑战第2天】使用Python进行文本情感分析
36 3
|
2月前
|
Linux 开发者 iOS开发
Python中使用Colorama库输出彩色文本
Python中使用Colorama库输出彩色文本
|
1月前
|
存储 C++ Python
[oeasy]python037_ print函数参数_sep分隔符_separator
本文介绍了Python中`print`函数的`sep`参数,即分隔符。通过回顾上文内容,解释了类型与`type`的概念,并强调了参数类型的重要性。文章详细探讨了`print`函数如何使用`sep`参数来分隔输出值,默认分隔符为空格(序号32)。还讨论了如何修改分隔符为其他字符,如冒号,并解释了为何反斜杠需要使用双反斜杠表示。最后,文章追溯了`sep`名称的由来,以及相关词汇的历史背景,如盎格鲁-萨克逊人的武器和语言。
39 0
|
2月前
|
XML 数据格式 Python
Python技巧:将HTML实体代码转换为文本的方法
在选择方法时,考虑到实际的应用场景和需求是很重要的。通常,使用标准库的 `html`模块就足以满足大多数基本需求。对于复杂的HTML文档处理,则可能需要 `BeautifulSoup`。而在特殊场合,或者为了最大限度的控制和定制化,可以考虑正则表达式。
68 12
|
2月前
|
存储 监控 数据处理
💻Python高手必备!文件系统操作秘籍,让你的数据存取如臂使指
在数据驱动时代,Python凭借简洁的语法、丰富的库生态及强大的跨平台能力,成为数据科学、自动化脚本及系统编程的首选语言。本文深入探讨Python文件系统操作技巧,涵盖基础的文件与目录控制、高效读写策略及实战中的文件监控与并发I/O处理。通过os和pathlib模块,你将学会如何递归遍历目录、优化大文件读写,并利用watchdog和concurrent.futures提升数据处理效率。掌握这些秘籍,助你在数据存取领域游刃有余。
30 2
|
2月前
|
机器学习/深度学习 自然语言处理 算法
使用Python实现简单的文本情感分析
【9月更文挑战第13天】本文将介绍如何使用Python编程语言进行基础的文本情感分析。我们将通过一个简单的例子,展示如何利用自然语言处理库nltk和机器学习库sklearn来实现对文本数据的情感倾向性判断。文章旨在为初学者提供一个入门级的指导,帮助他们理解并实践文本情感分析的基本步骤和方法。
41 6
|
2月前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
50 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
下一篇
无影云桌面