【基本扩展模块】37、文本文件读写【基本扩展模块】37、文本文件读写

作者 : 郭然 本文共2119个字,预计阅读时间需要6分钟 发布时间: 2021-08-25 共163人阅读

目录
一、文件的打开
二、文件的读写和访问
三、文件的关闭
四、结构化文本文件

一、文件的打开

  • 普通文件
    数据持久化的最简单类型
    仅仅是在一个文件名下的字节流,把数据从文件读入内存,从内存写入文件
  • open()函数
    f=open(filename[,mode[,buffering]])
    1、f:open()返回的文件对象
    2、filename:文件的字符串名
    3、mode:可选参数,打开模式和文件类型
    ①mode第一个字母表明对其的操作:
    r表示读模式
    w表示写模式
    x表示在文件不存在的情况下新创建并写文件
    a表示在文件末尾追加写内容
    +表示读写模式
    ②mode第二个字母是文件类型:
    t表示文本类型
    b表示二进制文件
    4、buffering:可选参数,文件的缓冲区,默认为-1

二、文件的读写和访问

文件的写操作
f.write(str)
f.writelines(strlist):写入字符串列表
文件的读操作
f.read()
f.readline():返回一行
f.readlines():返回所有行、列表

image.png

三、文件的关闭

  • 文件打开后要记得关闭
    关闭的作用是终止对外部文件的连接,同时将缓存区的数据刷新到硬盘上
  • 调用close()方法
    f.close()
  • 使用上下文管理器(context manager)
    确保在退出后自动关闭文件
with open(‘textfile','rt')as myfile:
      myfile.read()

四、结构化文本文件

4.1结构化文本文件:CSV
  • 纯文本文件,以”,”为分隔符
  • 值没有类型,所有值都是字符串
  • 不能指定字体颜色等样式
  • 不能指定单元格的宽高,不能合并单元格
  • 没有多个工作表
  • 不能嵌入图像图表
image.png
  • 文件读取-reader
    re=csv.reader()
    接受一个可迭代对象(比如csv文件),能返回一个生成器,可以从其中解析出内容
  • 文件读取-DictReader
    re=csV.DictReader()
    与reader类似
    但返回的每一个单元格都放在一个元组的值内
  • 文件写操作
    w=csv.writer()
    w.witerow(rows)
    当文件不存在时,自动生成
    支持单行写入和多行写入
  • 字典数据写入
w=csv.DictWriter()
w.writeheader()
w.writerow(rows)
4.2结构化文本文件:Excel
  • openpyxl模块
    用来读写扩展名为x1sx/x1sm/xltx/xltm的文件
    Workbook类是对工作簿的抽象
    Worksheet类是对表格的抽象
    Cell类是对单元格的抽象文件写操作

  • 操作之前先导入第三方库
    安装:pip install openpyx1
    导库:from openpyx1 import workbook

  • 创建Excel文件
    一个Workbook对象代表一个Exce1文档,使用该方法创建一个Worksheet对象后才能打开一个表

from openpyx1 import Workbook 
wb=Workbook()
ws=wb.active
  • 读取Excel文件
from openpyx1 import 1oad_workbook 
wb=1oad_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:返回单元格所在列坐标

4.3结构化文本文件:PDF
  • 轻松处理pdf文件的库-PyPDF2
    包含了PdfFileReader、PdfFileMerger、PageObject和PdfFileuriter四个主要类
    能进行读写、分割、合并、文件转换等多种操作
    只能从PDF文档中提取文本并返回为字符串,而无法提取图像、图表或其他媒体

  • 读取PDF文件
    readFile=open(’test.pdf’,’rb’)
    pdfFileReader=PdfFileReader(readFile)

  • pdfFileReader类
    .getNumPages():计算PDF文件总页数
    .getPage(index):检索指定编号的页面

  • PDF文件的写操作
    writeFile=’output.pdf’
    pdfFileWriter=PdfFileWriter()

  • pdfFileWriter类
    .addpage(pageObj):根据每页返回的Pageobject,写入到文件
    .addBlankPage():在文件的最后一页后面写入一个空白页,保存到新文件

  • 合并多个文档

pdf_merger=PdfFileMerger()
pdf_merger.append('python2018.pdf")
pdf_merger.merge(20,'insert.pdf')
pdf_merger.write('merge.pdf')
  • 单个页面操作-PageObject类
    .extractText():按照顺序提取文本
    .getContents():访问页面内容
    .rotateClockwise(angle):顺时针旋转
    .scale(sx,sy):改变页面大小
赞赏

微信赞赏支付宝赞赏

VIP部落提供编程技术、教育培训、优惠购物以及各类软件和网站源码、模板等资源下载。
VIP部落 » 【基本扩展模块】37、文本文件读写【基本扩展模块】37、文本文件读写

常见问题FAQ

提供最优质的资源集合

立即查看 了解详情