文件夹也叫文件目录,可以存放、组织多个文件。os模块提供了一组常见函数,可以方便进行文件夹管理。
比如:
- mkdir 创建文件夹
- chdir 改变当前文件夹
- rmdir 删除文件夹
- listdir 罗列文件夹内容
我们通过一个练习来了解下相关操作。自动生成姓名文件夹,即根据已有的学生学号,自动生成相应的各个文件夹,每个文件夹对应一个学号。
首先先来根据姓名列表建立文件夹:
import os
stus = ['202010001', '202010002', '202010003']
for i in stus:
os.mkdir(i)
由于没有指定在哪里创建文件夹,因此默认在当前项目所在目录。运行后可以在项目当前目录中看到三个新的文件夹:
也可以写为:
import os
stus = ['202010001', '202010002', '202010003']
for i in stus:
os.mkdir(os.getcwd() + '\\' + i)
效果一样。其中的getcwd函数可以获取当前项目所在目录。
请注意,此时直接反复运行上述代码会出现错误,提示为“文件已经存在(FileExistsError)”,因此大家需要在再次运行前,先删除这些创建的文件夹。
也可以在其他目录建立这些文件夹:
import os
root = 'D:\\temp\\'
stus = ['202010001', '202010002', '202010003']
for i in stus:
os.mkdir(root + i)
这里是在D盘的 temp 目录下建立。为此,需要首先建立 D 盘的temp目录,否则会出现找不到该目录的错误。
也可以写成下面的代码,效果一样:
import os
root = 'D:\\temp\\'
stus = ['202010001', '202010002', '202010003']
os.chdir(root)
for i in stus:
os.mkdir(os.getcwd() + '\\' + i)
这里首先使用 chdir 函数改变了当前项目默认的目录,改为 D 盘 temp 目录,因此接下来 getcwd 方法再次获取当前目录就是 D 盘 temp 目录。当然,这里如果已经存在相应的文件夹,仍然会创建失败。
为此可以先判断是否存在相同名称的文件夹,如有,先删除再创建。
import os
root = 'D:\\temp\\'
stus = ['202010001', '202010002', '202010003']
if os.path.exists(root):
for i in os.listdir(root):
os.rmdir(root + i)
os.chdir(root)
for i in stus:
os.mkdir(os.getcwd() + '\\' + i)
该代码增加了文件夹是否存在的判断,如果是通过循环遍历每个文件夹,利用 rmdir 删除文件夹。这样,就可以不断的运行,自动删除自动创建,便于修改代码。
请注意,不论是文件还是文件夹,删除都是不可恢复的。对于文件夹,如果里面有文件或者其他子文件夹,需要先删除后才能删除该文件夹。
配套学习资源、慕课视频: