本文共 3387 字,大约阅读时间需要 11 分钟。
Python 是一种强大的数据处理工具,尤其在处理 Excel、Word 和 CSV 文件方面表现出色。本文将详细介绍如何利用 Python 进行数据处理、文档操作以及文件格式转换。
Excel 是最流行的数据处理软件之一,而 Python 可以通过多种库轻松与 Excel 进行交互。常用的库包括 xlrd、xlwt、xlutils、XlsxWriter 和 OpenPyXL 等。以下是这些工具的特点对比:
| 工具 | 读取支持 | 写入支持 | 修改支持 | 格式支持 | 高版本支持 | 大文件处理 | 效率 |
|---|---|---|---|---|---|---|---|
| xlrd | 是 | 否 | 否 | 否 | 否 | 否 | 较慢 |
| xlwt | 否 | 是 | 是 | 否 | 否 | 否 | 较快 |
| XlsxWriter | 是 | 是 | 是 | 是 | 是 | 否 | 超快 |
| OpenPyXL | 是 | 是 | 是 | 是 | 是 | 否 | 一般 |
选择工具:根据需求选择合适的库。xlrd 和 xlwt 是基础工具,而 XlsxWriter 和 OpenPyXL 则更高级,支持更多格式。
安装 xlrd、xlwt 和 xlutils 可以通过以下命令执行:
pip install xlrd xlwt xlutils
使用 xlwt 库可以轻松向 Excel 文件中写入数据。以下是示例代码:
import xlwt# 创建 Excel 文件对象wb = xlwt.Workbook()# 新增表单页sh = wb.add_sheet('成绩')# 写入数据sh.write(0, 0, '姓名')sh.write(0, 1, '专业')sh.write(0, 2, '科目')sh.write(0, 3, '成绩')# 示例数据data = [ ('张三', '信息与通信工程', '数值分析', 88), ('李四', '物联网工程', '数字信号处理分析', 95), ('王华', '电子与通信工程', '模糊数学', 90)]# 写入数据for row in data: sh.write(sh.current_row, row[0]) sh.write(sh.current_row, row[1]) sh.write(sh.current_row, row[2]) sh.write(sh.current_row, row[3])# 保存文件wb.save('test.xls') 读取 Excel 文件的代码示例:
import xlrd# 打开 Excel 文件wb = xlrd.open_workbook('test_w.xls')# 获取 sheet 数量print('sheet 数量:', wb.nsheets)# 获取 sheet 名称print('sheet 名称:', wb.sheet_names())# 获取第一个 sheetsh = wb.sheet_by_index(0)# 打印 sheet 信息print('sheet %s 共 %d 行 %d 列' % (sh.name, sh.nrows, sh.ncols))# 获取单元格值print('第一行第二列的值为:', sh.cell_value(0, 1))# 获取整行或整列rows = sh.row_values(0)cols = sh.col_values(1)print('第一行的值为:', rows)print('第二列的值为:', cols)# 获取单元格类型print('第二行第一列的值类型为:', sh.cell(1, 0).ctype) 通过 xlutils 的 copy 模块可以轻松复制并修改 Excel 文件:
import xlrdfrom xlutils.copy import copy# 打开 Excel 文件readbook = xlrd.open_workbook('test_w.xls')# 复制文件wb = copy(readbook)# 获取第一个 sheetsh = wb.get_sheet(0)# 修改数据sh.write(4, 0, '王欢')sh.write(4, 1, '通信工程')sh.write(4, 2, '机器学习')sh.write(4, 3, 89)# 获取第二个 sheetsh = wb.get_sheet(1)# 替换总成绩数据sh.write(1, 0, 362)# 保存文件wb.save('test_w.xls') 处理 Word 文件需要使用 python-docx 库。以下是常用操作示例。
安装 python-docx:
pip install python-docx
通过 docx 库可以创建和格式化 Word 文件。以下是基本使用示例:
from docx import Documentfrom docx.shared import Pt, Inchesfrom docx.oxml.ns import qn# 创建空白文档doc = Document()# 新增标题doc.add_heading('如何使用 Python 创建和操作 Word', 0)# 保存文件doc.save('word1.docx') 通过设置字体、颜色、对齐等样式,可以实现 Word 文件的美观化:
from docx import Documentfrom docx.shared import Pt, Inchesfrom docx.oxml.ns import qn# 创建空白文档doc = Document()# 设置字体样式styleBR = xlwt.easyxf('font: name Times New Roman, color-index red, bold on')styleNum = xlwt.easyxf(num_format_str='#,##0.00')styleDate = xlwt.easyxf(num_format_str='YYYY-MM-DD')# 新增标题doc.add_heading('如何使用 Python 创建和操作 Word', 0)# 插入段落doc.add_paragraph('Word 文档在我们现在的生活和工作中都用的比较多...')# 保存文件doc.save('word2.docx') CSV(Comma-Separated Values)是一种简单的数据交换格式。Python 提供 csv 模块来处理 CSV 文件。
使用 csv.writer 写入 CSV 文件:
import csv# 打开文件with open('test.csv', 'w', newline='') as csvfile: writer = csv.writer(csvfile) writer.writerow(['id', 'name', 'age']) data = [('1001', '张三', '21'), ('1002', '李四', '31')] writer.writerows(data) 读取 CSV 文件的示例:
import csv# 打开文件with open('test.csv', newline='') as csvfile: reader = csv.reader(csvfile) for row in reader: print(', '.join(row)) 通过以上示例,可以看出 Python 在数据处理和文档操作方面具有强大的功能,能够高效完成各种复杂任务。
转载地址:http://ergp.baihongyu.com/