Python os 模块使用笔记

Python内置的os模块可以调用操作系统提供的接口函数,对文件或目录进行操作(实际上操作系统是不允许应用程序直接访问和操作文件和目录的,读写文件就是请求操作系统打开一个文件对象,通常称为文件描述符。然后,通过操作系统提供的接口从这个文件对象中读取数据,或者把数据写入这个文件对象。)
os模块一般有以下功能:

>>> import os
>>> os.name # 操作系统名字
'posix'
>>> os.uname()  #获取详细的操作系统信息,windows不支持。
('Darwin', 'iMac.local', '13.3.0', 'Darwin Kernel Version 13.3.0: Tue Jun  3 21:27:35 PDT 2014; root:xnu-2422.110.17~1/RELEASE_X86_64', 'x86_64')

注:如果是posix,操作系统是linux,Unix,Mac OS X.如果是nt,操作系统则是windows。

>>> os.environ   #在操作系统中定义的环境变量,全部保存在os.environ这个dict中,可以直接查看
{'VERSIONER_PYTHON_PREFER_32_BIT': 'no', 'TERM_PROGRAM_VERSION': '326', 'LOGNAME': 'michael', 'USER': 'michael', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/mysql/bin', ...}
>>> os.getenv('PATH')   #要获取某个环境变量的值,可以调用os.getenv()函数
'/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/mysql/bin'
# 查看当前目录的绝对路径:
>>> os.path.abspath('.')
'/Users/michael'
# 对路径进行连接组合,可以直接处理不同系统的路径分隔符。
>>> os.path.join('/Users/michael', 'testdir')
'/Users/michael/testdir'
# 然后创建一个目录:
>>> os.mkdir('/Users/michael/testdir')
# 删掉一个目录:
>>> os.rmdir('/Users/michael/testdir')
>>> os.path.split('/Users/michael/testdir/file.txt')   #对路径进行拆分,最后一部分总是最后级别的目录或文件。
('/Users/michael/testdir', 'file.txt')
>>> os.path.splitext('/path/to/file.txt')   #可以让你得到文件的后缀名
('/path/to/file', '.txt')
# 对文件重命名:将txt文件重命名为py文件
>>> os.rename('test.txt', 'test.py')
# 删掉文件:
>>> os.remove('test.py')

复制文件的函数居然在os模块中不存在!原因是复制文件并非由操作系统提供的系统调用。理论上讲,我们通过上一节的读写文件可以完成文件复制,只不过要多写很多代码。幸运的是shutil模块提供了copyfile()的函数,你还可以在shutil模块中找到很多实用函数,它们可以看做是os模块的补充。关于shutil模块可以参考月与灯依旧

>>> [x for x in os.listdir('.') if os.path.isdir(x)]  #只列出当前目录下的所有目录,不输出文件。
['.lein', '.local', '.m2', '.npm', '.ssh', '.Trash', '.vim', 'Adlm', 'Applications', 'Desktop', ...]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 12,386评论 0 27
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,391评论 30 472
  • pyton review 学习指南 https://www.zhihu.com/question/29138020...
    孙小二wuk阅读 4,719评论 0 2
  • 最近很久没在这更新了,但是其实平常有在画啦,没有坚持更新。 今天连画了两幅,第一幅是自己想的,第二幅是临摹的。
    风吹海树阅读 3,950评论 2 7
  • 今天是2017年第一天,都说这一天是励志的一天。可是为什么我没有可励志的事呢? 其实,我的励志已经在2016年6月...
    蓝华流云阅读 1,580评论 0 0

友情链接更多精彩内容