标签:
三、文件系统操作
os模块的功能主要包括文件系统部分和进程部分,这里介绍其中与文件系统相关的部分。
当请求操作系统失败时,os模块返回内置异常 exceptions.OSError 的实例,可以通过 os.error 访问这个类型,OSError的实例有三种属性:
os模块提供的有用属性
>>> os.curdir
‘.‘
表示当前目录的字符串,Unix和Windows上都是“.”。
>>> os.pardir ‘..‘
表示父目录的字符串,Unix和Windows上都是“..”。
>>> os.defpath ‘.;C:\\bin‘
程序的默认搜索路径,如果缺乏PATH环境变量时使用。
>>> os.linesep ‘\r\n‘
文本行的结尾字符串,Unix上是‘\n‘,Windows上是‘\r\n‘。
>>> os.linesep ‘\r\n‘
分隔文件的扩展名和文件名的分隔符,Unix和Windows上都是“.”。
>>> os.pathsep ‘;‘
路径列表中用来分隔路径的分隔符,可以参考PATH环境变量,Unix平台上是“:”,Windows平台上是";"。
>>> os.sep ‘\\‘
路径组成的分割符,在Unix平台上是"/",Windows平台上是"\\"。
os模块提供的与文件系统相关的方法
os.access(path, mode) # e.g. >>> os.access("C:\Windows\System32", os.R_OK | os.W_OK) True
access()函数判断当前进程的真实用户(组)(real user / real group)是否具有对路径 path 执行所有 mode 中列出的操作的权限,参数mode的可选值包括:
os.chdir(path)
# e.g.
>>> os.chdir("c:/")
等于 cd 到路径path,即將pwd切換到 path 指定的路径。
os.chmod(path, mode)
将 path 的访问权限设置为mode ,mode 可以是0或多个 os.R_OK,os.W_OK,os.X_OK,也可是3位8进制的整数(Unix平台),如 0777, 0664等。
os.getcwd() #e.g. >>> os.getcwd() ‘c:\\‘
getcwd()获取当前工作目录的路径。
os.listdir(path)
listdir(path) 返回一个列表,列表中包括 path 路径下的所有文件和目录,但是不包括“.”和“..”目录。
listdir()返回的列表是未排序的。
os.mkdirs(path, mode=0777) os.mkdir(path, mode=0777)
创建一个目录,此时 path 可能涉及多级目录,mkdirs会创建沿路所有尚不存在的目录,然后设置访问权限;而 mkdir()只创建 path 最右端的 基地址,基地址前面如果存在尚未创建的目录,mkdir()会抛出异常OSError。
创建失败时两个函数都抛出OSError,当指定的路径已经存在时也抛出相同的异常。
os.remove(path) os.unlink(path)
这两个函数删除 path 指定的文件。
os.removedirs(path)
把 path 中经过的所有目录(要求是空的目录)都删除。
os.rmdir(path)
删除 path 指定的目录(要求目录为空),删除失败时抛出OSError,例如删除的目录非空。
os.rename(src, dest)
将文件或目录 src 重命名为 dest。
os.renames(src, dest)
重命名,但是重命名的过程中会自动创建参数 dest 中所有的尚不存在的中间路径,重命名后会删除 src 中包含的空目录。
os.stat(path)
返回一个 stat_result 类型的值,该值提供了 10 种关于参数 path 的信息,可以通过对应的属性访问这些信息,例:
1 >>> os.path.getsize(‘test1.py‘)
2 0L
3 >>> os.stat(‘test1.py‘).st_size
4 0L
这10种关于文件、目录的信息及其对应的属性名称分别为:
属性名 | 含义 |
st_mode | 访问控制与其他模式位 |
st_ino | I节点的序号 |
st_dev | 设备号 |
st_nlink | 硬链接数 |
st_uid | 属主的UID |
st_gid | 属主的GID |
st_size | 大小(单位:字节) |
st_atime | 最后访问时间(自epoch以来的秒数) |
st_mtime | 最后修改时间 |
st_ctime | 最后一次状态改变的时间 |
os.utime(path, times=None)
设置文件的最后访问和最后修改时间,
os.walk(top, topdown=True, onerror=None)
首先,这个函数是一个生成器!用来遍历参数 top 指定的目录
参数 onerror :
walk() 每次生成的 item 都是一个三元组——(dirpath, dirnames, filenames),其中:
例:
import os
for dirpath, dirnames, filenames in os.walk("d:\\programs"):
dirnames[:] = [ d for d in dirnames if not d.startswith(‘.‘) ]
for name in filenames:
print os.path.join(dirpath, name)
该例子将会打印出”d:\\programs“目录下,所有不以 “.” 开头的目录中的所有文件,
注意在 topdown 为True时,遍历到一层目录时,修改生成得到的dirnames列表,可以影响下一层将要遍历的子目录个数和顺序,比如这里就在遍历时剔除了以“.”开头的目录。
Python文件与文件系统(2)——os模块对文件、文件系统操作的支持
标签:
原文地址:http://www.cnblogs.com/Security-Darren/p/4730781.html