Python的os模块的一些常见文件和目录操作

转自:极客学院

Python 的 os 模块封装了常见的文件和目录操作,本文只列出部分常用的方法,更多的方法可以查看官方文档

下面是部分常见的用法:

方法说明
 os.mkdir  创建目录
os.rmdir  删除目录
 os.rename  重命名
os.remove 删除文件
 os.getcwd 获取当前工作路径
os.walk 遍历目录
os.path.join 连接目录与文件名
os.path.split 分割文件名与目录
os.path.abspath 获取绝对路径
os.path.dirname 获取路径
os.path.basename 获取文件名或文件夹名
os.path.splitext 分离文件名与扩展名
os.path.isfile 判断给出的路径是否是一个文件
os.path.isdir 判断给出的路径是否是一个目录

例子

后文的例子以下面的目录结构为参考,工作目录为 /Users/ethan/coding/python

Users/ethan
└── coding
    └── python
        ├── hello.py    - 文件
        └── web         - 目录

看看例子:

  • os.path.abspath:获取文件或目录的绝对路径
 1 $ pwd
 2 /Users/ethan/coding/python
 3 $ python
 4 >>> import os                          # 记得导入 os 模块
 5 >>> os.path.abspath('hello.py')
 6 '/Users/ethan/coding/python/hello.py'
 7 >>> os.path.abspath('web')
 8 '/Users/ethan/coding/python/web'
 9 >>> os.path.abspath('.')                # 当前目录的绝对路径
10 '/Users/ethan/coding/python'
  • os.path.dirname:获取文件或文件夹的路径
1 >>> os.path.dirname('/Users/ethan/coding/python/hello.py')
2 '/Users/ethan/coding/python'
3 >>> os.path.dirname('/Users/ethan/coding/python/')
4 '/Users/ethan/coding/python'
5 >>> os.path.dirname('/Users/ethan/coding/python')
6 '/Users/ethan/coding'
  • os.path.basename:获取文件名或文件夹名
1 >>> os.path.basename('/Users/ethan/coding/python/hello.py')
2 'hello.py'
3 >>> os.path.basename('/Users/ethan/coding/python/')
4 ''
5 >>> os.path.basename('/Users/ethan/coding/python')
6 'python'
  • os.path.splitext:分离文件名与扩展名
1 >>> os.path.splitext('/Users/ethan/coding/python/hello.py')
2 ('/Users/ethan/coding/python/hello', '.py')
3 >>> os.path.splitext('/Users/ethan/coding/python')
4 ('/Users/ethan/coding/python', '')
5 >>> os.path.splitext('/Users/ethan/coding/python/')
6 ('/Users/ethan/coding/python/', '')
  • os.path.split:分离目录与文件名
1 >>> os.path.split('/Users/ethan/coding/python/hello.py')
2 ('/Users/ethan/coding/python', 'hello.py')
3 >>> os.path.split('/Users/ethan/coding/python/')
4 ('/Users/ethan/coding/python', '')
5 >>> os.path.split('/Users/ethan/coding/python')
6 ('/Users/ethan/coding', 'python')
  • os.path.isfile/os.path.isdir
1 >>> os.path.isfile('/Users/ethan/coding/python/hello.py')
2 True
3 >>> os.path.isdir('/Users/ethan/coding/python/')
4 True
5 >>> os.path.isdir('/Users/ethan/coding/python')
6 True
7 >>> os.path.isdir('/Users/ethan/coding/python/hello.py')
8 False
  • os.walk

os.walk 是遍历目录常用的模块,它返回一个包含 3 个元素的元祖:(dirpath, dirnames, filenames)。dirpath 是以 string 字符串形式返回该目录下所有的绝对路径;dirnames 是以列表 list 形式返回每一个绝对路径下的文件夹名字;filesnames 是以列表 list 形式返回该路径下所有文件名字。

 1 >>> for root, dirs, files in os.walk('/Users/ethan/coding'):
 2 ...     print root
 3 ...     print dirs
 4 ...     print files
 5 ...
 6 /Users/ethan/coding
 7 ['python']
 8 []
 9 /Users/ethan/coding/python
10 ['web2']
11 ['hello.py']
12 /Users/ethan/coding/python/web2
13 []
14 []

 

 
posted @ 2018-07-08 12:38  taolusi  阅读(367)  评论(0编辑  收藏  举报