os模块常用的函数
import os
# 获取当前文件的目录
os.getcwd()
# 获取path下的文件
os.listdir(path)
# 将filename和path拼接起来
os.path.join(path,filename)
# 判断是不是file
os.path.isfile(path)
# 判断是不是目录
os.path.isdir(path)
# 获取路径名不包含最后的文件
os.path.dirname(path)
# 获取文件名
os.path.basename(path)
# 获取文件大小
os.path.getsize()
# 生成目录
os.mkdir # 如果其父目录不存在会报错
os.makedirs # 连同其父目录一起递归生成
实现目录遍历
# 递归
def show_dir(path):
if not os.path.exists(path):
return
dir_list=os.listdir(path)
for dirname in dir_list:
dirpath=os.path.join(path,dirname)
if os.path.isfile(dirpath):
print("文件",dirname)
elif os.path.isdir(dirpath):
print("目录",dirname)
# 此处不能用return会导致函数只会遍历第一个目录
show_dir(dirpath)
# 广度遍历
def query(path):
stack=[]
# stack存放的是路径
stack.append(path)
# 使用了while嵌套for
while True:
# 当栈中的目录为空时跳出循环,也就是遍历完了所有的目录
if len(stack)==0:
break
# 取出栈顶的目录路径
path=stack.pop()
dir_list=os.listdir(path)
for dir_name in dir_list:
dir_path=os.path.join(path,dir_name)
if os.path.isdir(dir_path):
print("目录",dir_path)
elif os.path.isfile(dir_path):
print("文件",dir_path)
#此处将新的目录加到栈中
stack.append(dir_path)