python os模块

 
Python os 模块提供了一个统一的操作系统接口函数
一、对于系统的操作
1、os.name 当前使用平台
其中 ‘nt’ 是 windows,’posix’ 是linux 或者 unix
2、os.sep
输出操作系统的特定的路径分隔符。Win下为“\”,Linux下为“/”
3、os.pathsep 输出分格符
输出用于分割文件路径的字符串。 Windows下是';',Linux下为“:”
4、os.linesep 换行符
输出当前平台是用的行终止符,win下为“\r\n”,Linux下为“\n”,Mac使用'\r'。
5、os.environ
获取系统环境变量path
6、os.system('dir c:\\')
直接执行系统命令
假定有一个shell脚本test.sh:
xxx@ubuntu:~$ vi test.sh
xxx@ubuntu:~$ more test.sh
#!/bin/bash
echo 'hello python!'
echo 'hello world!'
exit 1
 
>>> import os
>>> os.system("./test.sh")
hello python!
hello world!
256
 
7、os.popen()
执行一个系统命令,把执行结果存到文件句柄中(和python中open函数类似)
dirList=os.popen('dir d:\\tmp')
for i in dirList:
print i
 
>> import os
>>> os.popen("./test.sh")
<open file './test.sh', mode 'r' at 0x7f6cbbbee4b0>
>>> f=os.popen("./test.sh")
>>> f
<open file './test.sh', mode 'r' at 0x7f6cbbbee540>
>>> f.readlines()
['hello python!\n', 'hello world!\n']
 
二、对于目录的操作
1、os.getcwd()
获取当前的工作目录,即当前Python脚本工作的目录路径。
结果:E:\python\0507
2、os.chdir('d:\\')
修改当前的工作目录
3、os.curdir
返回当前目录
4、os.pardir
目录切换到父目录(上一级目录)
 
三、对文件的操作
1、os.listdir('e:\\tmp')
列出指定目录下的所有文件和子目录,包括隐藏文件或目录,并以列表形式返回。
2、os.rename('e:\\tmp\\1.txt','e:\\tmp\\1new.txt')
修改文件名
3、os.stat('e:\\tmp\\02.txt')
获取文件的生命周期中的各个时间
4、os.utime(path[, (atime, mtime)]) 修改文件的时间属性
设置文件的access and modified time为给定的时间
如果未指定atime和mtime参数,修改的时间将会是当前的时间。
5、os.access()
输出文件是否有写的权限:
print os.access(fileName,os.W_OK)
print os.access(fn,os.R_OK) 文件是否有读的权限
print os.access(fn,os.X_OK) 文件是否有执行的权限
 
四、os.path
1、os.path.exists(path)
返回当前的目录或者文件是否存在
判断path是否存在,如果存在返回True,否则返回False。
2、os.path.isabs(path)
判断路径是否为绝对路径
判断path是否是绝对路径,如果是返回True,否则返回False。
3、os.path.isfile(path)
判断是否是文件
判断path是否是文件,如果是返回True,否则返回False。
4、os.path.isdir(path)
判断是否是目录
判断path是否是目录,如果是目录返回True,否则返回False。
5、os.path.getsize(path): 单位是字节
返回文件或者目录的大小。获得文件大小,如果name是目录返回0L;如果name代表的目录或文件不存在,怎会报WindowsError异常。
6、os.path.abspath(path)
获取绝对路径,(但这个路径不一定是真实存在的路径)
eg:
print os.path.abspath('d:\\tmp\\test13.txt')
print os.path.abspath('test13.txt')#返回当前执行目录下的文件名的路径,文件没有的时候也会返回
print os.getcwd()
结果:
d:\tmp\test13.txt
D:\python\0512\test13.txt
D:\python\0512
7、os.path.normpath(path)
把path转换为标准的路径。用于解决跨平台问题
 
五、从路径中获取盘符,文件名,扩展名,目录
1、os.path.split(path)
对文件路径做分割,把最后一个\\后面的文件会目录分割出来
将path分割成目录和文件名(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在),并存于元组中返回。
eg:
print os.path.split('D:\\tt4\\c12')
print os.path.split('D:\\tt4\\c12\\')
print os.path.split('D:\\tt4\\c12\\t1.txt')
结果:
('D:\\tt4', 'c12')
('D:\\tt4\\c12', '')
('D:\\tt4\\c12', 't1.txt')
2、os.path.dirname(path)
 
返回目录的名称
返回path的目录路径,其实就是os.path.split(path)的第一个元素。
3、os.path.basename(path)
返回文件的名称
返回path最后的文件名。如果path以/或\结尾,就会返回空值。即os.path.split(path)的第二个元素。
4、os.path.splitext(path)
把路径和扩展名切分开
print os.path.splitext('01.py')
print os.path.splitext('d:\\tmp\\001.txt')
print os.path.splitext('D:\\tt4\\c12')
结果:
('01', '.py')
('d:\\tmp\\001', '.txt')
('D:\\tt4\\c12', '')
fileName,expandName = os.path.splitext(f)
把路径和扩展名分开后可以直接赋值给两个变量,其实得到的是一个元组
5、os.path.splitdrive(path)
拆分驱动器(盘符)和后面的路径。拆分驱动器和文件路径,并以元组返回结果;主要针对win有效,Linux元组第一个总是空。
返回结果是元祖
6、os.path.join(path,*paths)
把所有的路径组合成绝对路径。连接两个或更多的路径名,中间以“\”分隔,如果所给的参数中都是绝对路径名,那最先给的绝对路径将会被丢弃
 
六、os.walk()
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。

在Unix,Windows中有效。

语法

walk()方法语法格式如下:

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

参数

  • top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。

  • topdown --可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。

  • onerror -- 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。

  • followlinks -- 设置为 true,则通过软链接访问目录。

以下实例演示了 walk() 方法的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*- import os
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))

执行以上程序输出结果为:

./.bash_logout
./amrood.tar.gz
./.emacs
./httpd.conf
./www.tar.gz
./mysql.tar.gz
./test.py
./.bashrc
./.bash_history
./.bash_profile
./tmp
./tmp/test.py

python 中的os模块的更多相关文章

  1. 善于利用python中的os模块

    作为一个程序猿,平时善于利用python中的os模块进行路径等操作,会省去很多麻烦,下面总结一下我平时经常用到的方法: import os os.getcwd() # 获取当前文件所在的目录 os.p ...

  2. Python中使用os模块执行远程命令

    1. 使用os模块远程执行命令 服务端代码 1 import socket 2 import os 3 4 sh_server = socket.socket() #创建一个socket对象 5 sh ...

  3. python中的os模块

    os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小…… 另 ...

  4. 二十八、python中的os模块

    A.os模块:系统相关的(相对比较常用的有:os.stat('path/filename'),os.path.split(path),os.path.dirname(path),os.path.bas ...

  5. python中的os模块几个常用的方法

    os.getcwd() 得到当前工作目录,即当前python脚本工作的目录路径 os.remove(file):删除一个文件 os.mkdir(name):创建目录 os.path.exists(na ...

  6. Python 中的 os 模块常见方法?

    os.remove() 删除文件 os.rename() 重命名文件 os.walk() 生成目录树下的所有文件名 os.chdir() 改变目录 os.mkdir/makedirs 创建目录/多层目 ...

  7. Python基础入门-os模块

    今天我们来介绍一下os模块中常用的一些方法,当然python中的os模块中提供的使用方法有很多,但是这里面小编会列举出来一些和实际工作中应用的相关的方法,而且会有一些实际的例子方便大家对os模块理解. ...

  8. Python中的logging模块

    http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...

  9. Python中的re模块--正则表达式

    Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...

随机推荐

  1. Daily Scrum (2015/10/29)

    今天晚上我们学霸项目的三个小组在一起开会,讨论如何能在后期使我们三个项目更好地结合在一起.为了三个小组的能够同时工作,不出现某一小组因需要其他小组成果而停滞的情况,我们决定围绕lucene,solr, ...

  2. Daily Scrumming* 2015.10.26(Day 7)

    一.总体情况总结 今天我们开会具体讨论了一下接下来的任务.还详细讨论了一下分数的分配,具体分数分配我们会在下一篇博客中详细说明. 我们下一周大致的工作安排如下: 1.UI:完成社团后台界面的设计,以及 ...

  3. 炸弹人——NABCD分析

    炸弹人——NABCD分析结果 N:需求:本软件应用于学生,学生可以在课余时间放松心情,缓解学习压力. A:做法:使用Cocosdx和Visual Studio 2010结合,之间用Python使其结合 ...

  4. 乱码之UTF-8 &GBK

    在提交JSP时对于乱码问题,首先我们要搞清楚为什么会出现乱码? 看JSP的头文件:<%@ page contentType="text/html;charset=UTF-8" ...

  5. SpringMVC(二)-- springmvc的系统学习之跳转结果的方式

    资源: 尚学堂   邹波  springmvc框架视频 若无特别注明,例子项目的配置方式为注解 一.设置ModelAndView对象. 1.根据View的名称和视图解析器跳转到指定的页面. 2.跳转的 ...

  6. eg_5

    问题描述:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符. 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.” ...

  7. Alpha版本冲刺(六)

    目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示 ...

  8. 28_数据库_第28天(数据库、表及表数据、SQL语句)_讲义

    今日内容介绍 1.MySQL数据库 2.SQL语句 01数据库概念 A: 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来, 用户可以对数据库中的数据进行 ...

  9. python response.text和response.content的区别

      1.重点理解 response.text返回的类型是str response.content返回的类型是bytes,可以通过decode()方法将bytes类型转为str类型 推荐使用:respo ...

  10. MDN & IRC

    MDN IRC MDN IRC xgqfrms https://developer.mozilla.org/en-US/docs/Mozilla/QA/Getting_Started_with_IRC ...