python的文件操作,是python办公自动化的最基础部分。今天,数据猿就尝试对四种格式的文档,进行部分内容读取的操作,实现读取文件操作的办公自动化~
读取文本文档
with 语句读取部分内容
python最基本的文件读取是采用open()函数,但需要close()来关闭文件,否则会报错,所以建议使用with语句来读取一般的txt文件。
如果要将其中一部分读取出来,怎么办呢?
有两种方法可以解决问题。
方法一:.find()定位下标法
使用.find()查找目标文字的下标,然后利用此下标进行字符串切片。
同find()类似,不同的是,如果未找到substr,则返回一个异常 ValueError: substring not found。
如果需要读取的文件是.csv和.data文件,这类文件类似表格,with语句的读取方式就相对复杂,因此需要采用pandas库来读取。
pandas读取.data文件
学机器学习的小伙伴会发现,在使用最初的数据集的时候,需要与UCI的机器“机器学习仓库:学习和智能系统中心”(Machine Learning Repository:Center for Machine Learning and Intelligent Systems)的数据集打交道。
如果是使用库自带的数据集还好,直接load_iris(),如果需要下载这个网站的最新数据集,则要下载此类文件——
我们会发现,这里的鸢尾花数据集是.data格式。要想读取.data文件,就需要使用pandas。如下所示——
读取doc文档
在日常工作中,我们经常会遇到,给定一个.doc文档,要求从中提取一部分文字存起来。
但是,.doc格式比较老,python中没有库读写.doc,所以就需要一个系统工具的库(这里是win32com)来打开word应用,将.doc转存为另存为.docx,再使用python-docx进行读写,以完成自动化操作。
首先,导入必要的库。这里需要os库获取当前路径和电脑绝对路径,以此找到word应用并打开doc文件。
然后,构造另存函数。主要流程为
打开word应用——找到目标文件——打开目标文件——另存目标文件——退出。
读取docx文档部分内容
导入python-docx库,注意这里写import docx即可。
但是,pip下载第三方库的时候要下载python-docx,否则会出错。
docx是按照段落读取的,所以需要列表解析式+.join()来形成一个长字符串,以便进行上文所示的字符串切片,从而读取部分内容。
使用上文中的str.index索引法读取部分内容——