Python读写数据文件的6种常用方式详解
本文系统梳理Python中读写Excel及各类数据文件的6种常用方式。涵盖内置IO方法、csv模块、NumPy库、Pandas库、专用Excel库(如openpyxl)及数据库交互模块。详细解析各库的核心函数、适用场景及代码示例,帮助开发者根据数据格式与规模选择最优方案。
本文整理了Python中读取数据文件的多种实现路径。
1. 利用Python内置IO方法(read、readline、readlines)
- read():一次性加载整个文件内容至内存。建议优先使用read(size)指定读取字节数,因为size参数越大,单次I/O耗时越长。
- readline():逐行读取文件内容。适用于内存资源受限的场景,但在常规数据处理中较少使用。
- readlines():一次性读取全部文件内容,并将每行作为元素存入列表(list)。这种方式便于后续通过循环遍历处理每一行数据。
2. 使用内置csv模块
Python标准库中提供了csv模块,专门用于处理CSV(逗号分隔值)文件的读写。CSV是数据科学领域最基础且常见的数据存储格式之一。csv模块能够高效处理不同规模的数据读写任务,尽管面对海量大数据时,仍需通过代码层面的优化来提升性能。
csv模块读取文件示例
# 读取csv文件
import csv
with open('test.csv','r') as myFile:
lines=csv.reader(myFile)
for line in lines:
print (line)
csv模块写入文件示例
import csv
with open('test.csv','w+') as myFile:
myWriter=csv.writer(myFile)
# writerrow一行一行写入
myWriter.writerow([7,8,9])
myWriter.writerow([8,'h','f'])
# writerow多行写入
myList=[[1,2,3],[4,5,6]]
myWriter.writerows(myList)
3. 借助numpy库(loadtxt、load、fromfile)
loadtxt方法
loadtxt函数主要用于读取文本文件(包括txt、csv等)以及.gz或.bz2格式的压缩文件。其前提条件是文件每一行必须包含数量相同的数值元素。
import numpy as np
# loadtxt()中的dtype参数默认设置为float
# 这里设置为str字符串便于显示
np.loadtxt('test.csv',dtype=str)
# out:array(['1,2,3', '4,5,6', '7,8,9'], dtype='<U5')
load方法
load函数专门用于读取NumPy专用的.npy或.npz文件,以及经过pickle序列化的持久化文件。
import numpy as np
# 先生成npy文件
np.save('test.npy', np.array([[1, 2, 3], [4, 5, 6]]))
# 使用load加载npy文件
np.load('test.npy')
'''
out:array([[1, 2, 3],
[4, 5, 6]])
'''
fromfile方法
fromfile函数可用于读取简单的文本数据或二进制数据,这些数据通常由tofile方法保存。在使用该方法时,用户必须明确指定元素的类型(dtype),并根据需要调整数组的形状。
import numpy as np
x = np.arange(9).reshape(3,3)
x.tofile('test.bin')
np.fromfile('test.bin',dtype=np.int)
# out:array([0, 1, 2, 3, 4, 5, 6, 7, 8])
4. 使用pandas库(read_csv、read_excel等)
Pandas是数据分析中最常用的库之一,支持读取多种格式的数据文件,通常将结果输出为DataFrame格式。其支持的文件类型包括:txt、csv、excel、json、剪切板数据、数据库、html、hdf、parquet、pickle文件、sas、stata等。
read_csv方法
read_csv函数用于读取csv格式文件,并返回DataFrame对象。
import pandas as pd
pd.read_csv('test.csv')
read_excel方法
该函数用于读取Excel文件,支持xlsx、xls以及xlsm格式。
import pandas as pd
pd.read_excel('test.xlsx')
read_table方法 通过调整sep参数(指定分隔符),该方法可用于读取任意格式的文本文件。
read_json方法
用于读取json格式的数据文件。
df = pd.DataFrame([['a', 'b'], ['c', 'd']],index=['row 1', 'row 2'],columns=['col 1', 'col 2'])
j = df.to_json(orient='split')
pd.read_json(j,orient='split')
read_html方法
用于从html页面中提取表格数据。
read_clipboard方法
用于读取系统剪切板中的内容。
read_pickle方法
用于读取pickle序列化的持久化文件。
read_sql方法
用于从数据库读取数据。在建立数据库连接后,传入相应的SQL语句即可执行查询。
read_dhf方法
用于读取hdf5文件,该方法特别适合处理大型文件。
read_parquet方法
用于读取parquet格式的文件。
read_sas方法
用于读取sas格式的数据文件。
read_stata方法
用于读取stata格式的数据文件。
read_gbq方法
用于读取Google BigQuery中的数据。
5、读写excel文件(xlrd、xlwt、openpyxl等)
Python中用于读写Excel文件的库众多,除前文提到的Pandas外,还包括xlrd、xlwt、openpyxl、xlwings等。
主要模块介绍:
- xlrd库:专注于从Excel中读取数据,支持xls和xlsx格式。
- xlwt库:用于对Excel文件进行修改和写入操作,但不支持xlsx格式的修改。
- xlutils库:结合xlwt和xlrd,用于对已存在的Excel文件进行修改。
- openpyxl:主要针对xlsx格式的Excel文件进行读取和编辑操作。
- xlwings:支持对xlsx、xls、xlsm格式文件进行读写及格式修改等操作。
- xlsxwriter:用于生成Excel表格,支持插入数据、图表等表格操作,但不支持读取文件。
- Microsoft Excel API:需安装pywin32库,通过直接与Excel进程通信来执行操作。该方法功能强大,可实现Excel内的所有操作,但运行速度相对较慢。
6. 操作数据库(pymysql、cx_Oracle等)
Python几乎支持所有主流数据库的交互。连接数据库后,可通过SQL语句执行增删改查操作。主要模块包括:
- pymysql:用于与MySQL数据库进行交互。
- sqlalchemy:用于与MySQL数据库进行交互(注:原文如此,通常SQLAlchemy支持多种数据库,此处保留原文描述)。
- cx_Oracle:用于与Oracle数据库进行交互。
- sqlite3:Python内置库,用于与SQLite数据库进行交互。
- pymssql:用于与SQL Server数据库进行交互。
- pymongo:用于与MongoDB等非关系型数据库进行交互。
- redis、pyredis:用于与Redis等非关系型数据库进行交互。
至此,关于Python中读写Excel等数据文件的6种常用方式介绍完毕。如需了解更多Python读写Excel相关内容,建议搜索本站过往文章或继续浏览后续相关文章,感谢大家的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









