内容正文:
任务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.1 文件管理
1.检查文件是否存在
在对文件进行操作之前,往往要先检查文件是否存在。
其中,path为要检查的文件路径,既可以是绝对路径又可以是相对路径。返回结果为True/False。
os.path.exists(path)这种做法既能检测文件又能检测文件夹,如果需要进行区分,则可以使用os.path.isdir()检测目录,使用os.path.isfile()检测文件。
6.2.1 文件管理
os.path.exists(path)
根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。
二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。
2.文件重命名
使用os模块中的rename()函数可以完成文件的重命名,其语法格式如下:
6.2.1 文件管理
os.rename(原文件, 目标文件)
根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。
二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。
6.2.1 文件管理
例:使用rename()函数将文件d:/works/test.txt重命名为hello.txt。
【例6-13】文件重命名。
import os
if os.path.isfile('d:/works/test.txt'): #判断文件是否存在
os.rename('d:/works/test.txt','d:/works/hello.txt')
print('文件已更名!')
3.删除文件
使用os模块中的remove()函数可以删除文件,其语法格式如下:
文件路径为字符串,指定要删除文件的路径。如果指定的文件不存在,则报错。
6.2.1 文件管理
os.remove(文件路径)
根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。
二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。
6.2.1 文件管理
例:使用remove()函数删除d:/works/test.txt文件。
【例6-14】删除文件。
import os
if os.path.isfile('d:/works/test.txt'):
os.remove('d:/works/test.txt')
print('文件已删除!')
4.复制文件
复制文件可以通过调用shutil模块下的copy()和copyfile()两个函数实现。
使用shutil.copy()函数将源文件复制到目标文件或目录中,其语法格式如下:
shutil.copyfile()函数的功能是将源文件内容复制到目标文件中,语法格式如下:
6.2.1 文件管理
shutil.copy(源文件,目标文件)
shutil.copyfile(源文件,目标文件)
根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。
二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。
6.2.1 文件管理
例:使用copy()函数将d:/works/t1.txt复制到e:/works/t2.txt。
【例6-15】复制文件。
import shutil
shutil.copy('d:/works/t1.txt','e:/works/t2.txt')
'e:/works/t2.txt'
5.移动文件
使用shutil模块中的move()函数可以实现文件或文件夹的移动操作,其语法格式如下:
如果目标文件已经存在,则将其覆盖。
6.2.1 文件管理
shutil.move(源文件,目标文件)
根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。
二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。
6.2.1 文件管理
例:使用move()函数将d:/works/t1.txt移动到c:/works/t1.txt。
【例6-16】移动文件。
import shutil
shutil.move('d:/works/t1.txt','c:/works/t1.txt')
6.获取文件大小
使用os模块中的os.path.getsize()可以获取文件大小,单位为字节,其语法格式如下:
其中path为文件路径及文件名。
6.2.1 文件管理
os.path.getsize(path)
根据数据的逻辑存储结构,文件可分为文本文件和二进制文件。文本文件是指以单一特定字符编码形式存储数据的文件。如按照UTF-8编码格式组织的文件。我们常见的.txt文档,.py的python源代码文件都是文本文件。
二进制文件:没有统一的字符编码,按照预定义的格式组织数据。如可执行程序、图形、图像、声音等文件都是二进制文件。
6.2.1 文件管理
函数 说明
os.rename(src, dst) 文件或目录重命名
os.remove(path) 删除文件,如果指定的文件不存在,则报错。
shutil.copy(src, dst) 将源文件内容复制到目标文件,如果目标文件存在,则被覆盖
shutil.move(src, dst) 将源文件内容移动到目标文件,如果目标文件存在,则被覆盖
os.getcwd() 返回表示当前工作目录
os.chdir(path) 切换当前工作目录为path,如果目标工作目录不存在,则报错
os.mkdir(path) 创建的目录,如果目录已经存在,则报错
os.makedirs(path) 创建的多级目录,如果目录已经存在,则报错。
$$