1.探索整个目录树
kv:增删改查
目录树==文件夹
文件目录位置==一串字符串
文件的绝对目录与相对目录

几个系统命令:
%cd 文件目录位置
%pwd

目录树=文件夹

import os   # 针对系统的模块,比如对目录树的操作
test_path = r'C:\study\jupyter'
os.listdir(test_path)  #listdir显示目录列表
['.ipynb_checkpoints',
 '21点.ipynb',
 '51beiwanglu-zuoye.ipynb',
 '51memo.1.py',
 '51备忘录v0.24.ipynb',
 'color_me.py',
 'guess21.py',
 'python01-test.ipynb',
 'python02-basic-num-str.ipynb',
 'python02-basic-num-str2.ipynb',
 'True False  返回值.ipynb',
 'Untitled.ipynb',
 'Untitled1.ipynb',
 'Untitled10.ipynb',
 'Untitled2.ipynb',
 'Untitled3.ipynb',
 'Untitled4.ipynb',
 'Untitled5.ipynb',
 'Untitled6.ipynb',
 'Untitled7.ipynb',
 'Untitled8.ipynb',
 'Untitled9.ipynb',
 'zhaofangtao.ipynb',
 'zuoye1.ipynb',
 '__pycache__',
 '作用域.ipynb',
 '函数的来龙去脉.ipynb',
 '单位转换器.ipynb',
 '控制程序的每一个角落.ipynb',
 '翻译小程序.ipynb',
 '解释函数.ipynb']
os.getcwd()  #获取当前的工作目录
'C:\\study\\jupyter'
os.chdir('C:\study\python')  # 更改目录os.chdir()
os.getcwd()  # 显示当前的工作目录current work dir
'C:\\study\\python'
os.mkdir('coop')  # os.mkdir()创建新目录
os.listdir()
['coop']

路径就是一条字符串

左右斜线

os.path.join()

os.path.exits()

os.path.isdir()

os.path.join('c', 'd')  #拼接路径的方法
'c\\d'
os.path.exists('C:\study\python')
True
os.path.exists(r'C:\study\python')  # 目录路径是否存在
True

相对路径和绝对路径

一个点:当前工作目录,特殊名称,不是真的文件夹

两个点:父级目录

os.path.abspath('.')

os.path.isabs()

os.path.relpath()

os.path.abspath('.')  # 当前路径的绝对路径
'C:\\study\\python'
os.path.isabs('C:\\study\\python')
True
os.path.relpath('C:\\study\\python', 'c:\\study')
'python'
os.path.relpath('c:\\study', 'C:\\study\\python')
'..'

命令管理

路径各级名称

path.split(os.path.sep)

os.path.basename()

os.path.dirname()

删除文件操作:谨慎操作

os.unlink

shutil.rmtree(path)

移动/复制

copy

copytree

move

os.getcwd()
'C:\\study\\python'
path1 = r'C:\\study\\python'
path2 = r'C:\study\python'
os.path.sep
'\\'
path1.split(os.path.sep)
['C:', '', 'study', '', 'python']
path2.split(os.path.sep)
['C:', 'study', 'python']
os.path.split(path1)
('C:\\\\study', 'python')
os.path.split(path2)  # 贪婪匹配
('C:\\study', 'python')
os.path.splitext(path1)
('C:\\\\study\\\\python', '')
os.path.splitext(path2)
('C:\\study\\python', '')
os.getcwd()
'C:\\study\\python'
path3 = r'C:\study\python\test1.xlsx'
os.path.splitext(path3)  # 将文件名的后缀给隔离开了
('C:\\study\\python\\test1', '.xlsx')
os.path.split(path3)  # os.path.spit(path3)没能将文件后缀给隔离
('C:\\study\\python', 'test1.xlsx')
########################
os.path.basename(path1)  # print目录最后的文件夹或者文件名
'python'
os.path.basename(path3)  # print目录最后的文件夹或者文件名
'test1.xlsx'
os.path.dirname(path2)  # print目录树排除最后文件后的目录,排除了目录python
'C:\\study'
os.path.dirname(path3)  # 排除了文件夹 test1.xlsx
'C:\\study\\python'
############################
os.getcwd()
'C:\\study\\python'
os.listdir()
['coop', 'test1.txt', 'test1.xlsx']
os.unlink('test1.xlsx')   # 删除文件
#######################################
import shutil   # shutil  针对目录的模块
shutil.rmtree('coop')   # 删除目录
os.listdir()
['test1.txt']
os.getcwd()
'C:\\study\\python'
shutil.copytree('../jupyter/test2/', '../python/test3')  # 复制并改名
'../python/test3'
shutil.copytree('../jupyter/test1/','test1')  # 单纯的复制
'test1'
shutil.copy('./test1.txt', './test2.txt')   # 针对文件
'./test2.txt'
os.listdir()
['test1', 'test1.txt', 'test2.txt', 'test3']
shutil.copy('./test1/','./test4/')
---------------------------------------------------------------------------

PermissionError                           Traceback (most recent call last)

 in ()
----> 1 shutil.copy('./test1/','./test4/')

c:\users\coop\miniconda3\envs\coop\lib\shutil.py in copy(src, dst, follow_symlinks)
    239     if os.path.isdir(dst):
    240         dst = os.path.join(dst, os.path.basename(src))
--> 241     copyfile(src, dst, follow_symlinks=follow_symlinks)
    242     copymode(src, dst, follow_symlinks=follow_symlinks)
    243     return dst

c:\users\coop\miniconda3\envs\coop\lib\shutil.py in copyfile(src, dst, follow_symlinks)
    118         os.symlink(os.readlink(src), dst)
    119     else:
--> 120         with open(src, 'rb') as fsrc:
    121             with open(dst, 'wb') as fdst:
    122                 copyfileobj(fsrc, fdst)

PermissionError: [Errno 13] Permission denied: './test1/'
shutil.move('../jupyter/21点.ipynb', './')  # move 移动
'./21点.ipynb'
os.listdir()
['21点.ipynb', 'test1', 'test1.txt', 'test2.txt', 'test3']