Python数据分析之Excel和Text文件的读写操作方法
作者:Token_w
Python操作Excel分为两个主要形式,读写和交互式操作,可以用不同的第三方工具,下面这篇文章主要给大家介绍了关于Python数据分析之Excel和Text文件的读写操作方法,需要的朋友可以参考下
1.Excel和 Text 文件的读写操作
1. Text 文件读写包
import sys print(sys.argv[0]) print(__file__) print(sys.path[0]) q=open(sys.path[0] + "\out.txt","w",encoding='utf-8') q.write('这个是测试一下') q.close() print('done')
open 语句可以打开的创建text
文件,存在文件即打开,不存在即创建
注:如文件已存在,使用 open
语句会覆盖原文件生成新文件
1.1 open函数
函数语法:open(name[, mode[, buffering]])
- name : 一个包含了你要访问的文件名称的字符串值。
- mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读®。
- buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
例:执行循环生成文本文件
import os import sys print(sys.argv[0]) print(__file__) print(sys.path[0]) fq=open(sys.path[0] + "\out1.txt","w",encoding='utf-8') for i in range(1,1000): fq.write('哈哈'+ str(i)+'\n') fq.close print('done')
2. excel 读写
两个主要的包:openpyxl
和 xlsxwriter
# coding=utf-8 import openpyxl from openpyxl.reader.excel import load_workbook import sys import os dir=sys.path[0] + '\练习题' fq=open('out.txt','w',encoding='utf-8') # 打开文件,写权限 for wjm in os.listdir(dir): os.chdir(dir) wk=load_workbook(filename=wjm) gzb= wk.sheetnames for x in range(len(gzb)): sheet1=wk[gzb[x]] print(wjm+' '+sheet1.title) for i in range(1,sheet1.max_row+1): chuan='' for j in range(1,sheet1.max_column+1): chuan='%s%s%s' % (chuan, ',', sheet1.cell(row=i,column=j).value) chuan=chuan[1:]#获得从第二个字符串开始到末尾的字符串 fq.write(chuan+'\r\n') fq.close print('it is over')
2.1 openpyxl包
OpenPyXL是一个强大的Python库,用于处理Excel文件,允许读取、编辑和创建Excel工作簿和工作表。无论是需要自动化处理大量数据,还是创建漂亮的报告,OpenPyXL都是一个强大的工具。本文将详细介绍OpenPyXL的各种功能,包括读取、写入、样式设置等,以及大量示例代码来帮助你深入理解。
要开始使用OpenPyXL,首先需要安装它。
使用pip进行安装:
pip install openpyxl
安装完成后,就可以导入OpenPyXL并开始处理Excel文件了。
1.打开现有工作表
import openpyxl # 打开工作簿 workbook = openpyxl.load_workbook('example.xlsx') # 获取工作表 sheet = workbook['Sheet1'] # 读取单元格数据 cell_value = sheet['A1'].value print(cell_value)
2.创建新的工作表
import openpyxl # 创建新工作簿 workbook = openpyxl.Workbook() # 获取默认工作表 sheet = workbook.active # 写入数据到单元格 sheet['A1'] = 'Hello' sheet['B1'] = 'World' # 保存工作簿 workbook.save('new_example.xlsx')
3.读取数据
import openpyxl workbook = openpyxl.load_workbook('example.xlsx') sheet = workbook['Sheet1'] # 读取单元格数据 cell_value = sheet['A1'].value print(cell_value) # 通过行和列索引读取数据 cell_value = sheet.cell(row=2, column=3).value print(cell_value)
4.写入数据
import openpyxl workbook = openpyxl.Workbook() sheet = workbook.active # 写入数据到单元格 sheet['A1'] = 'Hello' sheet.cell(row=2, column=2, value='World') # 保存工作簿 workbook.save('new_example.xlsx')
2.2 xlsxwriter包
XlsxWriter 是一个 Python 模块,用于创建使用开放 XML 标准的 Excel 2007 (XLSX) 格式的电子表格文件。
XlsxWriter 的一些重要特性包括 −
- XlsxWriter 创建的文件与 Excel XLSX 文件 100% 兼容。
- XlsxWriter 提供完整的格式设置功能,例如合并单元格、定义的名称、条件格式设置等。
- XlsxWriter 允许以编程方式在 XLSX 文件中插入图表。
- 可以使用 XlsxWriter 设置自动过滤器。
- XlsxWriter 支持数据验证和下拉列表。
- 使用 XlsxWriter,可以插入 PNG/JPEG/GIF/BMP/WMF/EMF 图像。
- 借助 XlsxWriter,Excel 电子表格可以与 Pandas 库集成。
- XlsxWriter 还支持添加宏。
- XlsxWriter 具有用于写入大文件的内存优化模式。
安装:
pip3 install xlsxwriter
1.多种写入方式
import xlsxwriter wk = xlsxwriter.Workbook('demo.xlsx') sheet = wk.add_worksheet('sheet123') sheet.write_string(1,1,"python test")#写入字符串类型数据 sheet.write_number(1,2,12)#写入数字型数据 sheet.write_blank(1,3," ")#写入空类型数据 sheet.write_formula(1,4,"=c2*10")#写入公式型数据 sheet.write_boolean(1,5,True)#写入逻辑型数据 sheet.write_url(1,6,"http://www.sina.com.cn")#写入超链接型数据 property = { 'font_size': 20,#字体大小 'bold':True, #是否加粗 'align': 'left',#水平对齐方式 'valign': 'vcenter',#垂直对齐方式 'font_name': u'微软雅黑', 'text_wrap': False, # 是否自动换行 } cell_format = wk.add_format(property) sheet.write(2,2,"people",cell_format) wk.close() print('done')
2.插入图片
import xlsxwriter wk = xlsxwriter.Workbook('demo.xlsx') sheet = wk.add_worksheet('sheet123') # 图片格式 img_format={ 'x_offset': 8,#水平偏移 'y_offset': 14,#垂直偏移 'x_scale': 0.018,#水平缩放 'y_scale': 0.018,#垂直缩放 'url': None, 'tip': None, 'image_data': None, 'positioning': None } # 示例: sheet.insert_image(1,1,'1.jpg',img_format) wk.close() print('done')
总结
到此这篇关于Python数据分析之Excel和Text文件的读写操作方法的文章就介绍到这了,更多相关Python读写Excel和Text文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!