6.2.2 目录管理(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)

2024-08-10
| 25页
| 133人阅读
| 6人下载
普通

内容正文:

任务6.2 文件批量操作 批量修改文件名 6.2 文件批量操作——批量修改文件名 【任务描述】 老师在上课过程中,经常通过电子教室管理软件发送和收取学生作业,但收上来的学生作业文件,文件名上会自动添加标识信息,如“01陈悦.docx”提交后变为“S21_01陈悦.docx”,这给老师的排序、整理工作带来不便。老师请小T帮忙编写Python程序,自动去掉文件名上添加的标识信息。 6.2 文件批量操作——批量修改文件名 【任务分析】 要解决老师遇到的问题,需要对文件名进行重命名操作。Python提供了os模块和shutil模块实现对文件和目录的删除、重命名等各种操作功能。在掌握和熟悉这些操作之后,我们就能很容易地帮助老师实现文件批量重命名了。 6.2 文件批量操作——批量修改文件名 6.2.1 文件管理 6.2.2 目录管理 6.2.3 任务实现——批量修改文件名 6.2.2 目录管理 1.创建目录 在 os 模块中有两个函数可以实现目录的创建,分别是mkdir()函数和makedirs()函数。os.mkdir()函数用于创建单个目录,语法格式如下: 其中,参数path为字符串,表示要创建的目录的路径,如果指定的目录已经存在,则报错。 6.2.2 目录管理 os.mkdir(path) 根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。 二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。 6.2.2 目录管理 例:使用mkdir()创建目录d:/python。 【例6-17】创建目录。 import os os.mkdir('d:/python') 2.重命名目录 与重命名文件一样,重命名目录也是通过调用os模块中的rename()函数实现的,其语法格式如下: 6.2.2 目录管理 os.rename(原目录, 目标目录) 根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。 二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。 6.2.2 目录管理 例:使用rename()函数将d盘下的python目录更名为java。 【例6-18】文件夹重命名。 import os os.rename('d:/python','d:/java') 3.获取和更改当前目录 使用os.getcwd()函数可以获取当前工作目录,其语法格式如下: getcwd()函数不带参数,返回表示当前工作目录的字符串。 6.2.2 目录管理 os.getcwd() os.chdir(path) 如果需要更改当前工作目录,则可以使用os.chdir()函数,其语法格式如下: 其中,path参数表示要切换的目标工作目录,如果目标工作目录不存在,则报错。 根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。 二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。 6.2.2 目录管理 例:使用chdir()函数将当前目录更改为d:/python。 【例6-19】更改当前目录。 import osos.chdir('d:/python') #更改当前工作目录为’d:/python’os.getcwd() #获取当前工作目录 4.获取目录内容 使用os模块中的listdir()函数获得指定目录中的文件和目录内容,其语法格式如下: 其中,参数path指定要获得目录内容的路径,函数返回结果为内容列表。 6.2.2 目录管理 os.listdir(path) 根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。 二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。 6.2.2 目录管理 例:使用listdir()函数获取目录d:/python下的内容列表。 【例6-20】获取目录内容。 import os os.listdir('d:/python') ['chapter4', 'chapter5', 'chapter6', 'chapter7', 'chapter8', 'test.txt'] 5.复制目录 使用shutil模块中的copytree()函数可以实现目录的复制,其语法格式如下: 6.2.2 目录管理 shutil.copytree(源目录,目标目录) 该函数返回目标目录字符串。 如果指定的目标目录已经存在,则报错。 根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。 二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。 6.2.2 目录管理 例:使用copytree()函数将目录d:\python复制到e:\python下。 【例6-21】复制目录。 import shutil shutil.copytree('d:\python','e:\python') 'e:\\python' 6.删除目录 删除空目录,可以使用os模块中的rmdir()函数,其语法格式如下: 6.2.2 目录管理 os.rmdir(目录路径) 指定删除的目录必须是空目录,即目录中不包含文件或子目录,否则报错。 根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。 二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。 6.2.2 目录管理 例:使用rmdir()函数删除空目录d:/python/chapter8。 【例6-22】删除空目录。 import os os.rmdir('d:/python/chapter8') 6.删除目录 删除一个非空目录及其所包含的文件和子目录,则需要用到shutil模块中的rmtree()函数,其语法格式如下: 6.2.2 目录管理 shutil.rmtree(目录路径) 根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。 二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。 6.2.2 目录管理 例:使用rmtree()函数删除非空目录d:/python/。 【例6-23】删除非空目录。 import shutil shutil.rmtree('d:/python/') 6.2.2 目录管理 函数 说明 os.listdir(path) 获得指定目录中文件和目录内容,返回结果为内容列表 shutil.copytree(src, dst) 复制目录,如果目标目录已经存在,则报错 os.rmdir(path) 删除空目录 shutil.rmtree(path) 删除非空目录 os.path.exists(path) 路径存在则返回True,路径损坏返回False os.path.isfile(path) 判断路径是否为文件 os.path.isdir(path) 判断路径是否为目录 os.path.getsize(path) 获取文件大小,单位为字节 python中对文件、目录操作时,常用到的os模块和shutil模块中的函数。 即学即答: 改变当前目录的函数是( )。 A.chdir() B.mkdir() C.remove() D.listdir() 6.2.3 任务实现——批量修改文件名 6.2.3 任务实现——批量修改文件名 【任务描述】 老师在通过电子教室管理软件收取学生作业文件时,文件名自动添加了主机名,如“01陈悦.docx”提交后变为“S21_01陈悦.docx”,如图6-5所示。这给老师整理文件带来不便,编写程序来自动去除文件名中的主机名部分,修改后的文件名如图6-6所示。 图6-5 修改前的文件名 图6-6 修改后的文件名 6.2.3 任务实现——批量修改文件名 【任务分析】 通过学习文件和目录操作,我们知道通过文件重命名的方法来实现文件名的修改。观察要修改的文件名,只要截取“_”后的内容作为新的文件名,就能实现批量修改文件名的目标,步骤如下: (1)读取作业文件夹下所有文件的文件名。 (2)截取文件名内容,生成新文件名。 (3)重命名文件。 6.2.3 任务实现——批量修改文件名 【例6-24】任务实现:批量修改文件名。 import osfloder = input('请输入文件目录:')if os.path.isdir(floder): os.chdir(floder) # 将文件目录设为当前目标namelist = os.listdir() # 获取所有文件名count = 0for name in namelist: i = name.find("_") if i != -1: newname = name[i+1::] # 截取文件名 os.rename(name,newname) # 文件重命名 count += 1print("修改%d个文件。"%(count)) 文件和目录管理涉及的函数较多,这里只介绍了常用的一些函数。要掌握这些函数的使用,还需要多在实践中练习。这里有一个操作示例:编写函数,获取目录的大小。我们来看看如何完成。 $$

资源预览图

6.2.2  目录管理(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
1
6.2.2  目录管理(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
2
6.2.2  目录管理(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
3
6.2.2  目录管理(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
4
6.2.2  目录管理(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
5
6.2.2  目录管理(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。