第十二天 第十章 目录操作

# os和os.path模块
import os
print('os.getcwd():获取当前目录  ',os.getcwd())
print('os.name:获取操作系统类型  ',os.name)
print('os.linesep:获取当前操作系统的换行符  ',os.linesep)
print('os.sep:获取当前路径分隔符  ',os.sep)
print('os.listdir(path):返回指定路径下的文件和目录信息,参数可空  ',os.listdir('D:/零基础学python/[个人笔记]'))
print('os.mkdir(path [,mode]):创建目录  ',os.mkdir('d:/111'))
print('os.rmdir(path):删除目录  ',os.rmdir('d:/111'))
print('os.makedirs(path1/path2...[,mode]):创建多级目录  ',os.makedirs('d:/222/333/444.py'))
print('os.removedirs(path1/path2...):删除多级目录  ',os.removedirs('d:/222/333/444.py'))
print('os.chdir(path):设置path为当前工作目录  ',os.chdir(r'D:\零基础学python\[个人笔记]'))
lmulu = os.walk('d:/')
# for i in lmulu:
    # print(i)
print('walk(top[,topdown[,onerror]]):遍历目录树,返回一个元组,包括路径名/目录列表/文件列表三个元素  ',lmulu)

print('os.path.abspath(path):用于获取文件或目录的绝对路径' ,os.path.abspath(''))
print('os.path.exists(path):判断目录或者文件是否存在,返回布尔值  ',os.path.exists('D:/零基础学python/[个人笔记]'))
print('os.path.join(path,name):将目录和目录或者文件名拼接起来  ',os.path.join('d:/222/','234.py'))
print('os.path.splitext():分离文件名和扩展名  ',os.path.splitext('d:/aaa/bbb/ccc/good.avi'))
print('os.path.basename(path):从一个目录中提取文件名  ',os.path.basename('d:/aaa/bbb/ccc/good.avi'))
print('os.path.dirname(path):提取路径,不包括文件名  ',os.path.dirname('d:/aaa/bbb/ccc/good.avi'))
print('os.path.isdir(path):用于判断是否有效路径  ',os.path.isdir('d:/aaa/bbb/ccc/good.avi'))


# 路径
# 相对路径:依赖于当前工作目录的。即该文件所在的位置,可以直接引用同级目录或上下级目录的路径。
print('当前目录为D:\python\[个人笔记]:',os.getcwd())
print('那么我用“with open("demo\\demo.txt") as file”里的"demo\demo.txt"就是相对路径')

# 绝对路径:不依赖于当前工作目录。
print('用“os.path.abspath("demo\\demo.txt")”可以获得绝对路径:',os.path.abspath('demo.py'))

# 拼接路径:将多个路径拼接到一起组成一个新的路径。
print("用“os.path.join(path1[,path2[,...]])”拼接:",os.path.join('D:\\hello\\world','it','me.py'))
# 不使用“+”拼接路径是因为在不同的系统,它们的路径分隔符是不同的。

# 如果指定目录有多级,而且最后一级的上级目录中有不存在的,则抛出FileNotFoundError异常,可用创建多级目录或递归调用mkdir函数实现。
# def mkdir(path):
#     if not os.path.isdir(path):
#         mkdir(os.path.split(path)[0])
#     else:
#         return
#     os.mkdir(path)
# myPath = "D:/mr/test/"
# mkdir(myPath)
#
# with open(os.path.join(myPath,'demo.py'),'w') as file:
#     file.write('hello world')

# 创建多级目录的命令:os.makedirs()用的就是递归方法。

# rmdir()函数只能删除空的目录,如果想要删除非空目录,则需要使用python内置的标准模块shutil的rmtree()函数实现。
# import shutil
# shutil.rmtree('D:/mr')

# 遍历目录:os.walk(top[,topdown][,onerror][,followlinks])
# top:欲遍历的根目录
# topdown:可选参数,遍历顺序,True表示自上而下遍历(即先遍历根目录);False表示自下而上遍历(即先遍历最后一级子目录);默认为True
# oneerror:可选参数,指定错误的处理方式,默认忽略
# followlinks:
# 返回值:返回包含3个元素的元组生成器,dirpath是当前遍历的路径;dirnames是当前路径下的子目录;filenames是当前路径下包含的文件
path = 'D:\\零基础学python'
print('%s%s%s'%('',path,'】  目录下包括的文件和目录:'))
for root,dirs,files in os.walk(path,topdown=True):
    for name in dirs:
        print('+',os.path.join(root,name))
    for name in files:
        print('  -',os.path.join(root, name))

 

posted @ 2020-08-26 20:24  Zack6688  阅读(135)  评论(0编辑  收藏  举报