python文件目录管理_目录管理与文件

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']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值