# _*_ coding: utf-8 _*_
import os
"""
需求,实现学生管理目录
os.makedirs()
"""
main_dir=os.path.join(
os.path.dirname(__file__),
"school"
)
for v in range(1,4):
level_dir=os.path.join(
main_dir,
"level{}".format(v)
) #年级目录
for val in range(1,6):
class_dir=os.path.join(
level_dir,
"class{}".format(val)
) #班级目录
for value in range(1,31):
id_dir=os.path.join(
class_dir,
"id{}".format(str(value).zfill(2))
) #学生目录
print(id_dir)
if os.path.exists(id_dir):
os.makedirs(id_dir)
#print(main_dir)
# _*_ coding: utf-8
import os
"""
os.rmdir(路径):删除目录
os.listdir(路径):列出当前路径下所有文件和目录
os.path.isfile(路径):判断是不是文件
os.path.isdir(路径):判断是不是目录
os.remove(文件路径):删除文件
os.removedirs(多级目录路径):如果是空目录可以直接删除,如果目录有文件,那么该目录没法删除
"""
#删除a
path1=os.path.join(
os.path.dirname(__file__),
"a"
)
print(path1)
print(os.listdir(path1))
#不存在则创建,存在则删除
if os.path.exists(path1):
sub_path1_list=os.listdir(path1)
if sub_path1_list:
for v in sub_path1_list:
sub_path1=os.path.join(
path1,
v
)
if os.path.exists(sub_path1):
#判断是否是文件
if os.path.isfile(sub_path1):
os.remove(sub_path1)
#判断是否是目录
if os.path.isdir(sub_path1):
os.rmdir(sub_path1)
os.rmdir(path1)
#删除aaa/bbb/ccc/ddd
path2="aaa/bbb/ccc/ddd"
print(path2)
#递归删除多级目录
def delete_tree_dir(path):
print(path)
if os.path.isfile(path):
os.remove(path)
if os.path.isdir(path):
for sub in os.listdir(path):
sub_path=os.path.join(
path,sub
)
delete_tree_dir(sub_path)
os.rmdir(path)
delete_tree_dir("a")
#os.removedirs("a/b/c")
#清空school/level03下面的所有目录
def delete_level03_sub_dir(path):
sub_dirs=filter(
lambda v:os.path.isdir(os.path.join(path,v)),
os.listdir(path)
)
for v in sub_dirs:
delete_tree_dir(
os.path.join(path,v)
)
#print(list(sub_dirs))
delete_level03_sub_dir("school/level03")
# _*_ coding: utf-8 _*_
import os
from prettyprinter import cpprint
#os.walk(顶级路径,topdown=False):展开文件和目录方法
#True最顶级目录在上,最底级目录在下
#False最底级目录在上,最顶级目录在下
#强制删除思路:是从最底层的目录和文件开始删除,自下往上
path="aaa"
#cpprint(list(os.walk(path,topdown=False)))
for root_path,dirs,files in os.walk(path,topdown=False):
#自下往上删除所有的目录
for d in dirs:
os.rmdir(os.path.join(root_path,d))
#自下往上删除所有的文件
for f in files:
os.remove(os.path.join(root_path,f))