python基础语法(二)基本扩展模块:文本文件读写

文本文件读写:
一、文件的打开
普通文件:数据持久化的最简单类型,仅仅是在一个文件名下的字节流,把数据从文件读入内存,从内存写入文件
    open()函数
f = open(filename[,mode[,buffering]])
f : open()返回的文件对象
filename:文件的字符串名
mode:可选参数,打开模式和文件类型
buffering:可选参数,文件的缓冲区,默认为-1

mode第一个字母表明对其的操作:
'r' 表示读模式
'w' 表示写模式
'x' 表示在文件不存在的情况下新创建并写文件
'a' 表示在文件末尾追加写内容
'+' 表示读写模式

mode第二个字母是文件类型
't' 表示文本类型
'b' 表示二进制文件

二、文件的读写和访问
文件的写操作
f.write(str)
f.writelines(strlist):写入字符串列表

文件的读操作
f.read()
f.readline():返回一行
f.readlines():返回所有行、列表

>>> f = open("my.txt","w")
>>> f.writelines(["apple\n","pie\n"])
>>> f.close()
>>> f = open("my.txt","r")
>>> f.readlines()
['apple\n', 'pie\n']
>>> f.close()

三、文件的关闭
文件打开后要记得关闭,关闭的作用是终止对外部文件的连接,同时姜缓存区的数据刷新到硬盘上

调用close()的方法关闭文件
    f.close()
使用上下文管理器(context manager)
确保在退出后自动关闭文件
with open('textfile','rt') as myfile:
    myfile.read()

四、结构化文本文件
CSV:纯文本文件,以“,”为分隔符,值没有类型,所有值都是字符串,不能指定字体颜色等样式,不能指定单元格的宽高,不能合并单元格,没有多个工作表,不能嵌入图像图表

文件读取——reader
    import csv
    re = csv.reader()
接受一个可迭代对象(比如CSV文件),能返回一个生成器,可以从其中解析出内容

文件读取——DictReader
    re = csv.DictReader()
与reader类似,但返回的每一个单元格都放在一个元组的值内

文件写操作
    w = csv.writer()
    w.witerow(rows)
当文件不存在时,自动生成,支持单行写入和多行写入

字典数据写入
    w = csv.DictWriter()
    w.writeheader()
    w.writerow(rows)

openpyxl模块:用来读写扩展名为xlsx/xlsm/xltx/xltm的文件
workbook类是对工作簿的抽象
worksheet类是对表格的抽象
Cell类是对单元个的抽象文件写操作

操作之前要先导入第三方库,安装:pip install openpyxl
导库:from openpyxl import workbook

创建Excel文件:
一个Workbook对象代表一个Excel文档,使用该方案创建一个Worksheet对象后才能打开一个表
    from openpyxl import Workbook
    wb = Workbook()
    ws = wb.active
读取Excel文件
    from openpyxl import load_workbook
    wb = load_workbook(filename)
    ws = wb.file.active
获取单元格信息:
获取Cell对象
    c= wb['sheet']['A1']
    c= wb['sheet'].cell(row=1,column=1)
    c.coordinate:返回单元格的值
    c.value:返回单元格的值
    c.row:返回单元格所有的行坐标
    c.column:返回单元格所在列坐标

轻松处理pdf文件的库——PyPDF2
包含了PdfFileReader、PdfFileMerger、PageObject和PdfFileWriter四个主要类
能进行读写、分割、合并、文件转移等多种操作
只能从PDF文档中提取文本并返回为字符串,而无法提取图像、图表或其他媒体
读取PDF文件:
    readFile = open('test.pdf','rb')
    pdfFileReader = PdfFileReader(readFile)
pdfFileReader类
getNumPages():计算PDF文件总页数
getPage(index):检索指定编号的页面
PDF文件的写操作:
    WriteFile = 'output.pdf'
    pdfFieWriter = PdfFileWriter()
pdfFileWriter类
.addPage(pageObj):根据每页返回的PageObject,写入到文件
.addBlankPage():在文件的最后一页后面写入一个空白页,保存到新文件
合并多个文档:
    pdf_merger = PdfFileMerger()
    pdf_merfer.append('python2018.pdf')
    pdf_merger.merge(20,'insert.pdf')
    pdf_merger.write('merger.pdf')
单个页面操作-PageObject类
.extractText():按照顺序提取文本
.getContents():访问页面内容
.rotateClockwise(angle):顺时针旋转
.scale(sx,sy):改变页面大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值