Python中os模块功能与用法详解

(编辑:jimmy 日期: 2024/9/24 浏览:2)

本文实例讲述了Python中os模块功能与用法。分享给大家供大家参考,具体如下:

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。

Python中os模块功能与用法详解 
看看例子:

  • os.path.abspath:获取文件或目录的绝对路径
$ pwd
/Users/ethan/coding/python
$ python
> import os             # 记得导入 os 模块
> os.path.abspath('hello.py')
'/Users/ethan/coding/python/hello.py'
> os.path.abspath('web')
'/Users/ethan/coding/python/web'
> os.path.abspath('.')        # 当前目录的绝对路径
'/Users/ethan/coding/python'
  • os.path.dirname:获取文件或文件夹路径
> os.path.dirname('/Users/ethan/coding/python/hello.py')
'/Users/ethan/coding/python'
> os.path.dirname('/Users/ethan/coding/python/')
'/Users/ethan/coding/python'
> os.path.dirname('/Users/ethan/coding/python')
'/Users/ethan/coding'
  • os.path.basename:获取文件名或文件夹名
> os.path.basename('/Users/ethan/coding/python/hello.py')
'hello.py'
> os.path.basename('/Users/ethan/coding/python/')
''
> os.path.basename('/Users/ethan/coding/python')
'python'
  • os.path.splitext:分离文件名与扩展名
> os.path.splitext('/Users/ethan/coding/python/hello.py')
('/Users/ethan/coding/python/hello', '.py')
> os.path.splitext('/Users/ethan/coding/python')
('/Users/ethan/coding/python', '')
> os.path.splitext('/Users/ethan/coding/python/')
('/Users/ethan/coding/python/', '')
  • os.path.split:分离目录与文件名
> os.path.split('/Users/ethan/coding/python/hello.py')
('/Users/ethan/coding/python', 'hello.py')
> os.path.split('/Users/ethan/coding/python/')
('/Users/ethan/coding/python', '')
> os.path.split('/Users/ethan/coding/python')
('/Users/ethan/coding', 'python')
  • os.path.isfile/os.path.isdir:判断当前路径是否是一个文件或文件夹
> os.path.isfile('/Users/ethan/coding/python/hello.py')
True
> os.path.isdir('/Users/ethan/coding/python/')
True
> os.path.isdir('/Users/ethan/coding/python')
True
> os.path.isdir('/Users/ethan/coding/python/hello.py')
False
  • os.walk:遍历目录

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

> for root, dirs, files in os.walk('/Users/ethan/coding'):
...   print root
...   print dirs
...   print files
...
/Users/ethan/coding
['python']
[]
/Users/ethan/coding/python
['web2']
['hello.py']
/Users/ethan/coding/python/web2
[]
[]

参考资料

关于Python文件操作-Rolle Holt
操作文件和目录-廖雪峰的官方网站

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?