Python 文件处理模块

归纳整理python中处理常见excel、csv、json、pdf、word等文件的python库,以及其中常用的函数

  1. CSV-CSV模块

import CSV#导入模块
csv_r_obi=CSV.reader(fileobj)#打开文件创建读取对象,可使用list()函数将reader对象转为列表
csv_r_obi.line_num#返回当前的行号
outputfile_obi=open('','w',newline='')#打开写入目标文件,'w'写模式打开,关键字参数newline设置为空,否则写出时中间会有空行
csv_w_obj=CSV.writer(outputfile_obi)#创建csv文件写对象,outputfile_obi写入目标文件
csv_w_obj.writerrow(content_list)#写出文件
CSV.writer(csvflie,delimiter='\t',lineterminatior='\n\m')#写出文件,delimiter转换分隔符,lineterminatior转换换行终止符
  1. Json-json模块

json字符串总是使用双引号,json文件只能包含字符串、整形、浮点型、布尔、列表、字典、NoneType数据

import json#导入json模块
value=json.loads()#导入json数据,返回字典型数据
value=json.dumps()#将数据转为json数据
  1. excel-openpyxl模块

import openpyxl#导入模块
  1. 打开、创建、保存excel文件对象,接受文件名,返回workbook数据类型值。

xl=openpyxl.load.workbook('filename')#打开excel文件
openpy.load.workbook('filename',data_only=True)#关键字参数data_only将表格中的公式内容替换为公式结果
xl=openpyxl.workbook()#创建excel文件
xl.save()#保存表格
  1. 提取表格中sheet的名字以及建立sheet对象。

xl.get_sheet_names()  #取得工作簿中所有sheet的名称
sht=xl.get_active_sheet() #h获取当前活动的sheet对象
sht=xl.get_sheet_by_names(sheet_name) #h获取输入sheet名称的sheet对象
  1. 获取表格中单元格值与单元格对象。

sht.cell(row=1,column=2)#获取指定单元格对象。
sht.cell(row=1,column=2).value#获取指定单元格值。
sht['A1']#获取指定单元格对象。
sht['A1'].value#获取指定单元格值。
sht.['A1':'C3']#返回A1-C3单元格数据的元组。
sht.column[]#返回值整列数据元组
sht.rows[]#返回值整行数据元组
sht.max_row#获取最大行
  1. 获取表格行列数

sht.get_highest_row()#获取表的行数
sht.get_highest_column()#获取表的列数
  1. 列字母与数字转换

from openpyxl.cell import get_column_letter,column_index_from_string
get_column_letter(5)#数字转字母
column_index_from_string('A')#字母转数字
  1. 创建、修改、删除sheet

xl.creat_sheet(index=,title='')#创建新sheet,关键字参数index-工作表索引,没有时将在表格最后创建,关键字参数title-sheet名称,没有时以默认名字创建。
sht.title=''#修改sheet的名称
xl.remove_sheet(sht)#删除sheet
sht.row_dimensions[1].height=10#设置行高,设置0时隐藏此行
sht.column_dimensions[1].width=10#设置列宽,设置0时隐藏此行
sht.merge_cells('A1':'D3')#合并单元格
sht.unmerge_cells('A1':'D3')#拆分单元格
sht.freeze_panes='C2'#冻结窗口,A2冻结第一行,B1冻结A列,C1冻结AB列,C2冻结第一行和AB列,A1\空\None不冻结
  1. 表格字体样式

from openpyxl.styles import Font,Style
fnt=Font(name='',bold=True,size=14,italic=True)#设置字体样式,输入字体名称、是否加粗、字体大小、是否斜体
sty=style(font=fnt)#设置样式对象
sht.[''].style/sty#为单元格内数据设置字体样式
  1. 表格公式

sht.['']='=sum(B1:B5)'#设置表格内为公式
  1. 图表

refobj=openpyxl.charts.Reference(sht,(1,1),(10,1))#创建数据源对象,参数1-sheet对象,参数2-数据源左上角行列号元组数据,参数3--数据源右下角行列号元组数据
seriesobj=openpyxl.charts.Series(refobj,title='')#创建数据系列对象,输入数据源和图标对象
chartobj=openpyxl.charts.BarChart()#创建图表对象,BarChart()条形图,LineChart()折线图,ScatterChart()散点图,PieChart()饼图,
chartobj.append(seriesobj)#添加数据系列
chartobj.drawing.top#设置图表顶端位置
chartobj.drawing.left#设置图表左边位置
chartobj.drawing.width#设置图表宽度
chartobj.drawing.height#设置图表高度
sht.add_chart(chartobj)#创建图标
  1. Word-python-docx模块

参考:python-docx — python-docx 0.8.11 documentation

  1. 导入模块与创建word文档对象

import docx
doc=docx.Document(*.docx)#打开word文档并创建对象,输入空白时新建word
doc.save('')#保存word文档
  1. 获取word文档信息

len(doc.paragraphs)#统计段落数量
doc.paragraphs[0].text#返回整段文本
len(doc.paragraphs[0].runs)#返回每个段落中的不同样式文本数量
doc.paragraphs[0].runs[1].text#返回某个样式的文本内容
  1. 设置word文档样式

doc.paragraphs[0].runs[1].style=''#设置文本样式
doc.paragraphs[0].runs[1].underline=True#设置下划线、删除线、粗体、斜体等
  1. 修改编辑word文档

paraobj=doc.add_paragraph('')#添加段落,返回段落对象,新加只能在文档末尾
paraobj.add_run('')#在段落后面追加内容,返回run对象,只能追加在段落末尾
doc.add_heading('',0)#添加标题,参数1标题内容,参数2标题等级
doc.paragraphs[0].runs[0].add_break(docx.text.WD_BREAK.PAGE)#参数docx.text.WD_BREAK.PAGE为在段尾加换页符,无参数为添加换行符
doc.add_picture('*.png',width=doc.shared.Inches(3),height=docx.shared.Cm(4))#添加图片,width与height为设置图片大小,无则默认大小,Inches(),Cm()分别为英制单位和公制单位设置大小
  1. PDF-PyPDF2模块

  1. 导入模块,打开与关闭文件

import PyPDF2
filename.endswith('.pdf')#字符串末尾匹配,匹配末尾是否已给定的字符结束
pdfFlieObj=open('','rb')#以只读模式打开PDF文件,'rb'二进制只读,'wb‘二进制写
pdfFlieObj.Close()#关闭PDF文件对象
  1. 读取pdf文件信息

pdfReader=PyPDF2.PdfFileReader(pdfFlieObj)#PDF文件读对象
pdfReader.numPages#返回PDF文件总页数
pageobj=pdfReader.getPage(0)#返回PDF文件某页对象
pageobj.extractText()#读取文本内容
  1. 写入pdf文件

pdfwriter=PyPDF2.PdfFileWriter()#PDF文件写操作对象
pdfwriter.addPage(pageobj)#写入一页
pdfwriter.writer(pdfFlieObj)#写出PDF文件,文件必须以‘wb’打开
pageobj.rotateClockwise(90)#顺时针旋转某页
pageobj.mergePages(pageobj)#将两页合并,如加水印
list.sort(key=str.lower)#列表排序方法,关键字参数key=str.lower,以小写排序
  1. pdf文件加密与解密

pdfReader.isEncrypted
pdfReader.decrypt('str')
pdfwriter.encrypt('str')#将PDF文件进行加密,str为加密密码,可有两个参数,参数1为用户口令,允许查看,参数2为拥有者口令,可打印,注释,提取文本,只给一个参数将作为两个口令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值