Python-目录操作

我们使用python对文件进行操作时,难免会涉及到对目录的操作,比如切换工作目录、创建或删除目录等操作。本文主要讲的是目录的基本操作。

一、使用os模块对目录进行操作

os模块操作目录的部分函数
getcwd()返回当前的工作目录
listdir(path)返回指定路径下的目录和文件
mkdir(path)创建目录
rmdir(path)删除目录
chdir(path)指定工作目录
makedirs(path1/path2/...)创建多级目录
removedirs(path1/path2/...)删除多级目录

 

下面是示例代码:

import os

#1、返回当前的工作目录
cur_path=os.getcwd()  
print(cur_path) #D:\blog\python_blog\目录操作


#2、返回路径下的文件和目录
data=os.listdir()  #默认返回当前工作目录下的文件和目录,也可以返回指定目录下的文件和目录
print(data) #['使用os模块操作目录.py', '文档1.txt']


path='D:\\1-phython\\python'
files=os.listdir(path) #返回指定目录下的文件和目录
print(files)


#3、创建目录
os.mkdir('目录1') #在当前工作目录下创建指定目录
data2=os.listdir()
print(data2) #['使用os模块操作目录.py', '文档1.txt', '目录1']


#4、删除指定目录
os.rmdir('目录1') #在当前工作目录下删除指定目录
data3=os.listdir() #在当前工作目录下再删除指定目录
print(data3) #['使用os模块操作目录.py', '文档1.txt']


#5、创建多级目录
os.makedirs('目录1/目录2/目录3')  #在当前工作目录下创建多级目录
data3=os.listdir()
print(data3) #['使用os模块操作目录.py', '文档1.txt', '目录1']
data4=os.listdir('目录1')  #'目录1'是相对路径,此处是相对于当前工作目录的文件路径
data5=os.listdir('目录1\\目录2') #'目录1\\目录2'是相对路径
print(data4)  #['目录2']
print(data5)  #['目录3']


os.makedirs('D:\\1-phython\\python\\目录1/目录2/目录3') #在指定目录下创建多级目录
print(os.listdir('D:\\1-phython\\python'))
#在Python中,正斜杠(/)通常用于表示文件和目录的路径,而双反斜杠(\)是Windows系统中特有的路径分隔符,又由于\为转义字符,所以表示路径时通过为\\。所以在python中/和\\均可以用于表示文件或目录的路径,但是\\只能在Windows系统中使用。所以其实还是更建议使用正斜杠/,因为它的可移植性更好


#6、删除多级目录
os.removedirs('目录1/目录2/目录3') #删除多级目录
dirs=os.listdir() 
print(dirs) #['使用os模块操作目录.py', '文档1.txt']


#7、改变当前工作目录
cur_path=os.getcwd()
print(cur_path) #D:\blog\python_blog\目录操作
path='D:\\1-phython\\python'
os.chdir(path) #修改当前工作目录
cur_path=os.getcwd()  #返回当前的工作目录
print(cur_path)  #D:\1-phython\python

二、使用os.path模块对目录进行操作

os.path模块操作目录的部分函数
abspath(path)用于获取文件或目录的绝对路径
exists(path)用于判断文件或目录是否存在
join(path,name)将路径与目录或者路径与文件名拼接起来
splitext()分离文件名和扩展名
basename(path)从路径中提取文件名(不包括路径名)
dirname(path)从路径中提取文件路径(不包括文件名)
isdir(path)用于判断是否为路径

下面是示例代码:

import os

#1、返回指定文件或目录的绝对路径
path=os.path.abspath('文档1.txt')  #如果不指名绝对路径,那么这个文件或目录必须是直接在当前工作目录下的,且不能是递归的。如果是递归的,需要指明相对路径
print(path) #D:\blog\python_blog\目录操作\文档1.txt

path=os.path.abspath('目录1') #D:\blog\python_blog\目录操作\目录1
print(path)

path=os.path.abspath('目录1/目录2') #D:\blog\python_blog\目录操作\目录1\目录2
print(path)

path=os.path.abspath('D:/1-phython/python/目录1') 
print(path)  #D:\1-phython\python\目录1


#2、判断文件或目录是否存在
res=os.path.exists('目录4')  
print(res) #False

res=os.path.exists('D:/1-phython/python/目录1')
print(res) #True


#3、将路径与文件名或目录名拼接起来
path='D:\\blog\\python_blog\\目录操作'
name='文档2.txt'
abs_path=os.path.join(path,name)  
print(abs_path)


#4、分离文件名和后缀名
a=os.path.splitext('文档1.txt')
print(a)


 #5、从路径中提取文件名或目录名(不包括路径)
dir_name=os.path.basename('D:\\blog\\python_blog\\目录操作')
file_name=os.path.basename('D:\\blog\\python_blog\\目录操作\\文档1.txt')
print(dir_name,file_name)  #目录操作 文档1.txt


#6、从路径中提取路径(不包括文件名)
path=os.path.dirname('D:\\blog\\python_blog\\目录操作')
print(path)  #D:\blog\python_blog
path=os.path.dirname('D:\\blog\\python_blog\\目录操作\\文档1.txt')
print(path) #D:\blog\python_blog\目录操作


#7、用于判断是否为路径
res1=os.path.isdir('D:\\blog\\python_blog\\目录操作')
res2=os.path.isdir('目录操作')
print(res1,res2) #True False

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值