7 Python文件、文件夹、word及excel操作
0 建议学时和要求
4学时
掌握os和os.path模块对文件和文件夹操作的函数
掌握shutil模块对文件和文件夹操作的函数
掌握扩展库openpyxl对Excel文件的操作
1 文件的高级操作
1.1 文件的概念及分类
文本文件
- 文本文件可以使用记事本、gedit、ultraedit等字处理软件直接进行显示和编辑,并且人类能够直接阅读和理解。
- 文本文件由若干文本行组成,包含英文字母、汉字、数字字符串、标点符号等。
- 扩展名为txt、log、ini、c、cpp、py、pyw、html、js、css的文件都属于文本文件。
二进制文件
- 数据库文件、图像文件、可执行文件、动态链接库文件、音频文件、视频文件、Office文档等均属于二进制文件。
- 二进制文件无法用记事本或其他普通字处理软件正常进行编辑,人类也无法直接阅读和理解,需要使用正确的软件进行解码或反序列化之后才能正确地读取、显示、修改或执行。
1.2 上下文管理语句with
在实际开发中,读写文件应优先考虑使用上下文管理语句with。关键字with可以自动管理资源,不论因为什么原因跳出with块,总能保证文件被正确关闭。
with open(filename, mode, encoding) as fp: #通过文件对象fp读写文件内容的语句
【例1】将字符串写入使用UTF8编码格式的文本文件,然后再读取并输出。
s ='1234567\nABCDEFG'
with open('sample.txt', 'w', encoding='utf8') as fp:fp.write(s)with open(‘sample.txt', 'r', encoding='utf8') as fp:s=fp.read()
【例2】遍历并输出文本文件的所有行内容
with open('sample.txt', encoding='utf8') as fp: for line in fp: #遍历所有行print(line)
【例3】读取Python安装目录中news.txt文件的内容,然后输出其中第100个字符开始的50个字符。
with open('news.txt', 'r', encoding='utf8') as fp:content = fp.read() #读取所有内容print(content[100:150])
【例4】读取文本文件data.txt(文件中每行存放一个整数)中所有整数,按升序排序后再写入文本文件data_new.txt中。
2 文件夹操作
2.1 文件与文件夹操作—os模块
标准库,不需安装
import os.path as path
fileName = 'C:\\Python38\\python.exe'
path.isfile(fileName) #判断是否为文件
# True
path.isdir(fileName) #判断是否为文件夹
# False
path.basename(fileName) #获取路径中最后一部分的名称
# 'python.exe'
path.dirname(fileName) #最后一个路径分隔符前面的部分
# 'C:\\Python38'
path.splitext(fileName) #分隔文件扩展名
# ('C:\\Python38\\python', '.exe')
【例1】遍历指定文件夹的所有子文件夹和文件
from os import listdir
from os.path import join, isfile, isdir# 遍历文件夹,如果是文件就直接输出如果是文件夹,就输出显示,然后递归遍历该文件夹
def listDirDepthFirst(directory):for subPath in listdir(directory): #listdir()列出的是相对路径,需要使用join()把父目录连接起来path = join(directory, subPath)if isfile(path):print(path)elif isdir(path):print(path)listDirDepthFirst(path)listDirDepthFirst("毕业晚会节目院系提交excel")
2.2 shutil模块
标准库,不需安装
【例1】把C:\dir1.txt文件复制到D:\dir2.txt
import shutil
shutil.copyfile('C:\\dir1.txt', 'D:\\dir2.txt')
【例2】使用shutil模块的方法删除文件夹
shutil.rmtree('D:\\unpack')
【例3】使用shutil的copytree()函数复制文件夹,忽略扩展名为py和以“新”开头的文件和子文件夹
from shutil import copytree, ignore_patterns
copytree('C:\\python38\\test', 'D:\\des_test',ignore=ignore_patterns('*.py', '新*'))
【例4】自动检测U盘插入并把U盘上所有文件复制到本地硬盘上
from shutil import copytree
from psutil import disk_partitions
while True:sleep(3)for item in disk_partitions(): #检查所有驱动器if 'removable' in item.opts: #发现可移动驱动器driver = item.deviceprint(‘Found USB disk:’, driver) #输出可移动驱动器符号breakelse:continuebreak
copytree(driver, 'D:\\usbdriver') #复制根目录
print('优盘已复制')
2.3 课后延伸
把文件夹<毕业晚会节目>内的excel文件复制到<汇总>文件夹里
3 Excel操作
3.1 Excel读文件操作
安装
pip install openpyxl -i https://pypi.douban.com/simple
【例1】打开excel并获取单元格数据
from openpyxl import load_workbook
wb = load_workbook('d:\\1.xlsx')
sheet1 =wb['login'] #打开login表
# sheet1=wb.worksheets[0] #打开第一张表
cellA1=sheet1['A1'].value #获取单元格数据
# cellA1=sheet1.cell(1,1).value #获取单元格数据
wb.close()
3.2 Excel写文件操作
【例1】单元格赋值
import openpyxl
wb = openpyxl.Workbook()
sheet1 = wb.worksheets[0]
sheet1.append(['A1', 'B1']) #整行赋值
sheet1.cell(2,2).value=42 #单个单元格赋值
wb.save('1.xlsx')
【例2】有一文件data.xlsx,要求使用openpyxl库读取并输出Excel文件中D列所有单元格内容,如果单元格包含公式则输出公式的计算结果
from openpyxl import load_workbook
#打开Excel文件,获取WorkSheet
ws = load_workbook('data.xlsx', data_only=True).worksheets[0]
#遍历Excel文件所有行,假设下标为3的列中是公式
for row in ws.rows:print(row[3].value)
【例3】已知有一个文件data.xlsx,要求在第一个工作表中第3列之前插入一列,并保存为data_new.xlsx文件
from openpyxl import load_workbook
ws = load_workbook('data.xlsx').worksheets[0]
ws.insert_cols(3) #在第3列之前插入一列
for index, row in enumerate(ws.rows): #填入数据if index == 0:row[2].value = '新字段'else:row[2].value = index
wb.save('data_new.xlsx')
3.3 课后延伸
【题1】创建一个名为data.xlsx的excel文件,内部数据为:
【题2】当前文件夹中有若干扩展名为.xlsx的Excel文件,把文件内容合并
7 Python文件、文件夹、word及excel操作相关推荐
- 将PDF和图片文件如何转为Word或Excel分享几种转换器软件方法
(走思中-)那一年我有着大四独有的忧伤和惆怅,眼看着叫春的姑娘来了又走却不闻方向,人们上上下下来来回回各自繁忙,一种说不出的失落紧贴在枕旁.她的脸庞从未有过如此熟悉的模样,只是一瞬间想起带她流浪的誓言 ...
- 计算机一级excel0分,探究计算机一级Word和Excel操作自动评分的实现
Word 和Excel 操作自动评分是计算机一级评分中的重要内容,计算机一级涉及考生多,实现公正客观的评分并不容易.在计算机一级评分过程中工作人员可以通过VBA 技术来实现对考生答案的自动评分.当前在 ...
- 计算机一级excel怎么算分,计算机一级Word和Excel操作自动评分的实现.doc
计算机一级Word和Excel操作自动评分的实现 The Implement of Computer Level Test Word and Excel Operation Automatic Gra ...
- 计算机一级考试操作题怎么评分,计算机一级word和excel操作自动评分实现.doc
计算机一级Word和Excel操作自动评分的实现 The Implement of Computer Level Test Word and Excel Operation Automatic Gra ...
- java操作office和pdf文件java读取word,excel和pdf文档内容
在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...
- python word转excel_看Python如何无缝转换Word和Excel
word和excel是办公过程必不可少的两个文档类型,word多用于文字处理,比如备忘录.论文.书籍.报告.商业信函等,excel可以制作精美的图表,还可以计算.分析.记录数据.二者在功能达成上有重叠 ...
- python菜鸟excel教程-Python菜鸟之路: 封装通用excel操作
前言 最近工作常要干些excel导入导出的活,用python来做最方便,写的多了,就想封装下读写的操作,后续通用,python菜鸟,大佬轻喷(不服可以来写Java ....当我没说) 设计 1.pyt ...
- 一张图学会python应用到excel-Python应用之------Excel操作
Excel操作 这次的数据是放进Excel的.到后面才意识到如果放进数据库的话,可能就没有那么多事了.但是已经写到一半,难以回头了. 搜索Excel,可以得出几个方案来,一个是用xlrt/xlwt库, ...
- Python办公自动化|从Word到Excel
作者:陈熹 来源:早起Python 大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于涉及文件私密所以文中的具体内容已做修改) 一共有近2600条类似 ...
最新文章
- OFDM调制系统传输的复信号从何而来?
- oracle中的数据集合操作
- numpy中reshape方法详解
- 如何快速学习产品?实践才是王道!同为小白的人儿加油!
- 【算法知识】详解归并排序算法
- OpenGL程序运行提示“glut32.dll丢失问题”
- 王俊和尹玉新团队合作开发代谢组联合人工智能肺癌早期检测新方法
- 基于FPGA的DDR3多端口读写存储管理系统设计
- python k线顶分型_顶分型底分型代码
- 【其他】使win7尽量少占用C盘空间
- 贡献十本经典的java教程,都是pdf完整版
- EPUB格式怎么转成MOBI格式
- java hsqldb_HSQLDB: java程序使用hsqldb 入门教程 java启动hsqldb (初步hsqldb效率评估)...
- OBS Studio是一款非常专业的视频直播录制软件,完全免费
- 论文阅读:Axiomatic Characterization of Data-Driven Influence Measures for Classification
- 要重复多少次变成潜意识_量变到质变,首先要做的是不断重复
- 什么是全文搜索引擎?
- 【windows系统】插入移动硬盘后,有盘符,但提示需要格式化的解决办法
- 订单助手,拼多多,淘宝或者自定义商城,自动下单发货,无人值守店铺
- vux微信签名拿openid设计
热门文章
- 两种方式设置SVN提交代码时必须填写日志
- 对方正在输入 java_smark和openfire即时通信代码
- 数字孪生智慧展厅来袭:“云上看展”,双线共频
- AOP 面向切面编程
- (mysql8.0.22) 本地计算机上的Mysql服务启动后停止,某些服务再未有其它服务或程序使用时自动停止
- KNIME数据库扩展指南
- 照片拍摄日期_如何始终拍摄清晰的照片
- 如何有效收获AWS认证?
- 学python要不要先自学c语言_学习Python之前是否需要学习C语言
- 均匀白噪声的定义及特点_对白噪声的理解