Python os模块介绍


Posted in Python onNovember 30, 2014
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.symlink('path/filename','ln_filename') 创建符号链接,源需绝对路径
os.utime() 修改时间属性
>>> import os
>>> stinfo = os.stat('c.py')
>>> print "access time of c.py: %s \nmodified time of c.py: %s" % (stinfo.st_atime,stinfo.st_mtime)
access time of c.py: 1375448908.0
modified time of c.py: 1369735909.0
>>> os.utime('c.py',(1375448978,1369735977))
>>> print "access time of c.py: %s \nmodified time of c.py: %s" % (stinfo.st_atime,stinfo.st_mtime)
access time of c.py: 1375448908.0
modified time of c.py: 1369735909.0
退出Python交互模式,再次进入
>>> import os
>>> stinfo = os.stat('c.py')
>>> print "access time of c.py: %s \nmodified time of c.py: %s" % (stinfo.st_atime,stinfo.st_mtime)
access time of c.py: 1375448978.0
modified time of c.py: 1369735977.0
os.walk() 生成一个目录树下的所有文件名

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

  • top表示需要遍历的目录树的路径
  • topdown的默认值是”True”,表示首先返回目录树下的文件,然后在遍历目录树的子目录.Topdown的值为”False”时,则表示先遍历目录树的子目录,返回子目录下的文件,最后返回根目录下的文件
  • onerror的默认值是”None”,表示忽略文件遍历时产生的错误.如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历

该函数返回一个元组,该元组有3个元素,这3个元素分别表示每次遍历的路径名,目录列表和文件列表
os.walk()举例:

>>> import os
>>> for root, dirs, files in os.walk("wd/chat", topdown=False):
... for name in files:
...  print(os.path.join(root, name)) #打印文件绝对路径
... for name in dirs:
...  print(os.path.join(root, name)) #打印目录绝对路径
...
os.tmpfile() 创建并打开‘w+b'一个新的临时文件
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.popen("bash command") 运行shell命令,生成对象,可赋给变量,再用read读取
>>> import os
>>> os.system('ls twisted')
chat_client_twisted.py chat_server_twisted.py
0
 
>>> LS = os.popen('ls twisted')
>>> LS.readlines()
['chat_client_twisted.py\n', 'chat_server_twisted.py\n']
os.environ 获取系统环境变量
os.access('pathfile',os.W_OK) 检验文件权限模式,输出True,False
os.chmod('pathfile',os.W_OK) 改变文件权限模式
# echo 'test' > test.sh
>>> os.access('test.sh',os.W_OK)
True
>>> os.access('test.sh',os.X_OK)
False
>>> os.chmod('test.sh',os.X_OK)
>>> os.access('test.sh',os.X_OK)
True
# ls -l test.sh
---------x 1 root root 12 Oct 20 23:03 test.sh

os.path常用模块详解

os.path.abspath(path) 返回path规范化的绝对路径
>>> import os.path
>>> os.path.abspath('c.py')
'/root/py/c.py'
>>> os.path.abspath('../py/c.py')
'/root/py/c.py'
os.path.split(path) 将path分割成目录和文件名二元组返回
>>> os.path.split('/root/py/c.py')
('/root/py', 'c.py')
>>> os.path.split('/root/py/')
('/root/py', '')
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
>>> os.path.dirname('/root/py/c.py')
'/root/py'
>>> os.path.dirname('c.py')
''
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
>>> os.path.basename('/root/py/c.py')
'c.py'
>>> os.path.basename('/root/py')
'py'
os.path.commonprefix(list) 返回list中,所有path共有的最长的路径,从左向右,相同字符
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.normcase(path) 在Linux下,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为反斜杠
>>> os.path.normcase('c:/windows\\system32\\')
'c:\\windows\\system32\\'
os.path.normpath(path) 规范化路径
>>> os.path.normpath('c://windows\\System32\\../Temp/')
'c:\\windows\\Temp'
os.path.splitdrive(path) 拆分驱动器名和路径,主要对win,对linux元组第一个总是空的
>>> os.path.splitdrive('c:\\windows')
('c:', '\\windows')
os.path.splitext(path) 分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作 ,以“.”为分隔符
>>> os.path.splitext('/root/py/c.py')
('/root/py/c', '.py')
os.path.getsize(path) 返回path的大小(字节)
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间

os.path.walk(top,func,arg)

  • top表示需要遍历的目录树的路径
  • func表示回调函数,对遍历路径进行处理.所谓回调函数,是作为某个函数的参数使用,当某个时间触发时,程序将调用定义好的回调函数处理某个任务.回调函数必须提供3个参数:第1个参数为walk()的参数tag,第2个参数表示目录列表,第3个参数表示文件列表
  • arg是传递给回调参数func的元组.回调函数的一个参数必须是arg,为回调函数提供处理参数.参数arg可以为空
>>> import os
>>> def VisitDir(arg,dirname,names):
... for filespath in names:
...  print os.path.join(dirname,filespath)
...
>>> path='/root/py/wd/chat'
>>> os.path.walk(path,VisitDir,())
/root/py/wd/chat/chat_server.py
/root/py/wd/chat/chat_client.py
/root/py/wd/chat/test
/root/py/wd/chat/test/linuxeye
/root/py/wd/chat/test/test2
/root/py/wd/chat/test/test3
/root/py/wd/chat/test/test2/asdf
/root/py/wd/chat/test/test3/sdfaxx

os.path.walk()与os.walk()产生的文件名列表并不相同。os.path.walk()产生目录树下的目录路径和文件路径,而os.walk()只产生文件路径

Python 相关文章推荐
python编写暴力破解FTP密码小工具
Nov 19 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
读写json中文ASCII乱码问题的解决方法
Nov 05 Python
python清除字符串中间空格的实例讲解
May 11 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
使用python3构建文件传输的方法
Feb 13 Python
Python中format()格式输出全解
Apr 12 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Python实现钉钉订阅消息功能
Jan 14 Python
Python3爬虫关于代理池的维护详解
Jul 30 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 03 Python
在pycharm中无法import所安装的库解决方案
May 31 Python
Python实现的检测网站挂马程序
Nov 30 #Python
Python实现网站文件的全备份和差异备份
Nov 30 #Python
Python3 能振兴 Python的原因分析
Nov 28 #Python
Python3 正在毁灭 Python的原因分析
Nov 28 #Python
关于你不想知道的所有Python3 unicode特性
Nov 28 #Python
Python 2.7.x 和 3.x 版本的重要区别小结
Nov 28 #Python
用Python编写一个国际象棋AI程序
Nov 28 #Python
You might like
Laravel框架搜索分页功能示例
2019/02/01 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
通过javascript把图片转化为字符画
2013/10/24 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
2018/02/23 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
Vue简单封装axios之解决post请求后端接收不到参数问题
2020/02/16 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
python调试神器PySnooper的使用
2019/07/03 Python
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
幼儿如何来做好自我评价
2013/11/05 职场文书
编辑找工作求职信分享
2014/01/03 职场文书
护理专业自荐信范文
2014/02/26 职场文书
在职员工证明书
2014/09/19 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
高三数学教学反思
2016/02/18 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫