在实际开发中,除了掌握文件读写的基本操作,还需要熟练地对文件和目录进行操作,比如创建目录,判断文件是否存在等等, 在os和os.path这两个内置模块中,提供了基本的操作方法。首先来看下os.path提供的几个常用功能
1. 获取文件所在目录和文件名
相关函数如下
代码语言:javascript复制>>> import os.path
# split 用于拆分路径
# 返回目录和文件名构成的元组
>>> os.path.split('/dir1/dir2/test.py')
('/dir1/dir2', 'test.py')
# dirname 返回目录
>>> os.path.dirname('/dir1/dir2/test.py')
'/dir1/dir2'
# basename返回文件名
>>> os.path.basename('/dir1/dir2/test.py')
'test.py'
# join函数用于生成文件路径
>>> os.path.join('/dir','dir2', 'test.py')
'/dir/dir2/test.py'
2. 获取文件所在的绝对路径
通过abspath函数来实现,用法如下
代码语言:javascript复制>>> os.path.abspath('./test.py')
'/dir/dir2/test.py'
3. 判断文件和目录是否存在
通过exists函数来实现,用法如下
代码语言:javascript复制>>> os.path.exists('./test.py')
True
>>> os.path.exists('./')
True
4. 判断文件是否为空
getsize函数返回以字节为单位的文件大小,用法如下
代码语言:javascript复制>>> os.path.getsize('./test.py')
297
5. 判断是文件还是目录
isfile函数判断是否为文件,isdir函数判断是否为目录,用法如下
代码语言:javascript复制>>> os.path.isfile('./test.py')
True
>>> os.path.isdir('./')
True
创建目录等操作则通过os模块来实现,常见的用法如下
1. 创建目录
mkdir函数创建单个目录,makedirs函数递归创建目录,用法如下
代码语言:javascript复制>>> import os
>>> os.mkdir('test')
# 当已经存在时,会报错
>>> os.mkdir('test')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileExistsError: [Errno 17] File exists: 'test'
>>> os.makedirs('test/test')
2. 删除文件和目录
remove函数删除文件,rmdir函数删除目录,用法如下
代码语言:javascript复制>>> os.remove('test.py')
>>> os.rmdir('./test/test')
3. 列出目录下的所有文件和目录
通过listdir函数实现,用法如下
代码语言:javascript复制>>> os.listdir('./')
['test.py', 'test1.py']
以上只是常见的几种操作方法,更多的操作方法请查看官方文档。