Python os模块手册

来源:互联网 发布:xp系统cpu优化工具 编辑:程序博客网 时间:2024/06/08 08:00

Python的标准库中的os模块包含普遍的操作系统功能。这个模块的作用主要是提供与平台无关的功能。也就是说os模块能够处理平台间的差异问题,使得编写好的程序无需做任何改动就能在另外的平台上运行。当然,这个模块只是提供了一个轻便的方法使用要依赖操作系统的功能。有些特定的功能还得使用特定的模块,比如:如何只是想读或写文件,请使用open();如果想操作文件路径,请使用os.path模块;如果想在命令行中,读入所有文件的所有行,请使用fileinput模块;使用tempfile模块创建临时文件和文件夹;更高级的文件和文件夹处理,请使用shutil模块。如果想要了解os模块的所有内容,可以使用dir(os)方法查看。

模块变量

os.error
内建OSError exception的别名。

os.name
导入依赖操作系统模块的名字,指示你正在使用的平台。下面是目前被注册的名字:’posix’, ‘nt’, ‘mac’, ‘os2’, ‘ce’, ‘java’, ‘riscos’.

os.environ
一个mapping对象表示环境。例如,environ[‘HOME’] ,表示的你自己home文件夹的路径(某些平台支持,windows不支持) ,它与C中的getenv(“HOME”)一致。

这个mapping对象在os模块第一次导入时被创建,一般在python启动时,作为site.py处理过程的一部分。在这一次之后改变environment不 影响os.environ,除非直接修改os.environ。

注:putenv()不会直接改变os.environ,所以最好是修改os.environ。

注:在一些平台上,包括FreeBSD和Mac OS X,修改environ会导致内存泄露。参考 putenv()的系统文档。

如果没有提供putenv(),mapping的修改版本传递给合适的创建过程函数,将导致子过程使用一个修改的environment。

如果这个平台支持unsetenv()函数,你可以删除mapping中的项目。当从os.environ使用pop()或clear()删除一个项目时,unsetenv()会自动被调用(版本2.6)。

os.curdir
操作系统用此常数字符串作为当前文件夹的引用。

os.pardir
操作系统用此常数字符串作为父文件夹的引用。

os.sep
系统使用此字符来分割路径。

os.altsep
系统使用另外一个字符来分割路径,如果只有一个分割字符存在,则是None。

os.extsep
分割基本文件名和扩展名的字符。

os.pathsep
系统使用此字符来分割搜索路径(像PATH),例如POSIX上’:’,Windows上的’;’,也可以通过os.path。

os.defpath
默认的搜索路径用作 execp()和spawnp()如果环境没有 ‘PATH’。 也可以通过os.path。

os.linesep
当前平台上的换行符字符串. 在POSIX上是’\n’,或者 在Windows上是’\r\n’ . 不要使用 os.linesep作为换行符,当写入文本文件时 (默认); 使用’\n’代替, 在所有平台上。

os.devnull
空设备的文件路径.例如:POSIX上 ‘/dev/null’ . 也可以通过os.path。

文件与文件夹

os.access()
格式如下:

os.access(path,mode);

参数:
●path – 要用来检测是否有访问权限的路径。
●mode – mode为F_OK,测试存在的路径,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多。
 ●os.F_OK: 作为access()的mode参数,测试path是否存在。
 ●os.R_OK: 包含在access()的mode参数中 , 测试path是否可读。
 ●os.W_OK 包含在access()的mode参数中 , 测试path是否可写。
 ●os.X_OK 包含在access()的mode参数中 ,测试path是否可执行。
返回值:
如果允许访问返回 True , 否则返回False。

实例:

import os#假定./1.txt文件存在,并有读写权限ret=os.access('./1.txt',os.F_OK)print('F_OK-返回值:%s'%ret)ret=os.access('./1.txt',os.R_OK)print('R_OK-返回值:%s'%ret)ret=os.access('./1.txt',os.W_OK)print('W_OK-返回值:%s'%ret)ret=os.access('./1.txt',os.X_OK)print('X_OK-返回值:%s'%ret)

运行结果:
这里写图片描述

os.chdir()
格式如下:

os.chdir(path)

参数:
● path–要切换到的新路径
返回值:
若允许访问返回True,否则返回False

实例:

#!/usr/bin/python# -*- coding: UTF-8 -*-import ospath = "/home"# 查看当前工作目录retval = os.getcwd()print("当前工作目录为 %s"%retval)# 修改当前工作目录os.chdir( path )# 查看修改后的工作目录retval = os.getcwd()print("目录修改成功 %s"%retval)

运行结果:
这里写图片描述

os.chmod()
格式如下:

os.chmod(path,mode)

参数:
●path – 文件名路径或目录路径。
●flags – 可用以下选项按位或操作生成, 目录的读权限表示可以获取目录里文件名列表, ,执行权限表示可以把工作目录切换到此目录 ,删除添加目录里的文件必须同时有写和执行权限 ,文件权限以用户id->组id->其它顺序检验,最先匹配的允许或禁止权限被应用。
 ●stat.S_IXOTH: 其他用户有执行权0o001
 ●stat.S_IWOTH: 其他用户有写权限0o002
 ●stat.S_IROTH: 其他用户有读权限0o004
 ●stat.S_IRWXO: 其他用户有全部权限(权限掩码)0o007
 ●stat.S_IXGRP: 组用户有执行权限0o010
 ●stat.S_IWGRP: 组用户有写权限0o020
 ●stat.S_IRGRP: 组用户有读权限0o040
 ●stat.S_IRWXG: 组用户有全部权限(权限掩码)0o070
 ●stat.S_IXUSR: 拥有者具有执行权限0o100
 ●stat.S_IWUSR: 拥有者具有写权限0o200
 ●stat.S_IRUSR: 拥有者具有读权限0o400
 ●stat.S_IRWXU: 拥有者有全部权限(权限掩码)0o700
 ●stat.S_ISVTX: 目录里文件目录只有拥有者才可删除更改0o1000
 ●stat.S_ISGID: 执行此文件其进程有效组为文件所在组0o2000
 ●stat.S_ISUID: 执行此文件其进程有效用户为文件所有者0o4000
 ●stat.S_IREAD: windows下设为只读
 ●stat.S_IWRITE: windows下取消只读
返回值:
 无返回值

实例:

import os,stat# 假定 ./1.txt 文件存在,设置文件可以通过用户组执行os.chmod('./1.txt',stat.S_IXGRP)# 设置文件可以被其他用户写入os.chmod('./1.txt',stat.S_IWOTH)print('修改成功')

运行结果:
这里写图片描述

os.chown()
格式如下:

os.chown(path,uid,gid)

参数:
 ●path – 设置权限的文件路径
 ●uid – 所属用户 ID
 ●gid – 所属用户组 ID
返回值:
 没有返回值。

实例:

import os# 假定 ./1.txt 文件存在.# 设置所有者 ID 为 100#如果不修改可以设置为 -1, 你需要超级用户权限来执行权限修改操作。os.chown('./1.txt',100,-1)print('修改权限成功')

运行结果:
这里写图片描述

os.chroot()
格式如下:

os.chroot(path)

参数
 ●path – 要设置为根目录的目录。
返回值
 没有返回值。

实例

import os, sys# 设置根目录为 /tmp#用该函数需要管理员权限。os.chroot("/tmp")print "修改根目录成功!!"

运行结果

修改根目录成功!!

os.close()
格式如下:

os.close(fd)

参数
 ●fd – 文件描述符。
返回值
 没有返回值。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )#  写入字符串os.write(fd, "This is test")# 关闭文件os.close( fd )print "关闭文件成功!!"

运行结果

关闭文件成功!!

os.closerange()
os.closerange() 方法用于关闭所有文件描述符 fd,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略。
格式如下:

os.closerange(fd_low, fd_high)

参数
 ●fd_low – 最小文件描述符
 ●fd_high – 最大文件描述符
返回值
 没有返回值。
实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 写入字符串os.write(fd, "This is test")# 关闭文件os.closerange( fd, fd)print "关闭文件成功!!"

运行结果

关闭文件成功!!

os.dup()
os.dup() 方法用于复制文件描述符 fd。
格式如下:

os.dup(fd)

参数
 ●fd – 文件描述符
返回值
 返回复制的文件描述符。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 复制文件描述符d_fd = os.dup( fd )# 使用复制的文件描述符写入文件os.write(d_fd, "This is test")# 关闭文件os.closerange( fd, d_fd)print "关闭所有文件成功!!"

输出结果

关闭所有文件成功!!

os.dup2()
os.dup2() 方法用于将一个文件描述符 fd 复制到另一个 fd2。
格式如下:

os.dup2(fd, fd2)

参数
 ●fd – 要被复制的文件描述符
 ●fd2 – 复制的文件描述符
返回值
 没有返回值。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 写入字符串os.write(fd, "This is test")# 文件描述符为 1000fd2 = 1000os.dup2(fd, fd2);# 在新的文件描述符上插入数据os.lseek(fd2, 0, 0)str = os.read(fd2, 100)print "读取的字符串是 : ", str# 关闭文件os.close( fd )print "关闭文件成功!!"

输出结果

读取的字符串是 :  This is test关闭文件成功!!

os.fchdir()
os.fchdir() 方法通过文件描述符改变当前工作目录。

格式如下:

os.fchdir(fd)

参数
 ●fd – 文件描述符
返回值
 该方法没有返回值。

实例

import os, sys# 首先到目录 "/var/www/html" os.chdir("/var/www/html" )# 输出当前目录print "当前工作目录为 : %s" % os.getcwd()# 打开新目录 "/tmp"fd = os.open( "/tmp", os.O_RDONLY )# 使用 os.fchdir() 方法修改到新目录os.fchdir(fd)# 输出当前目录print "当前工作目录为 : %s" % os.getcwd()# 关闭打开的目录os.close( fd 

输出结果

当前工作目录为 : /var/www/html当前工作目录为 : /tmp

os.fchmod()
os.fchmod() 方法用于改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限。
格式如下:

os.fchmod(fd, mode)

参数
●fd – 文件描述符
●mode – 可以是以下一个或多个组成,多个使用 “|” 隔开:
 ●stat.S_ISUID:设置 UID 位
 ●stat.S_ISGID: 设置组 ID 位
 ●stat.S_ENFMT: 系统文件锁定的执法行动
 ●stat.S_ISVTX: 在执行之后保存文字和图片
 ●stat.S_IREAD: 对于拥有者读的权限
 ●stat.S_IWRITE: 对于拥有者写的权限
 ●stat.S_IEXEC: 对于拥有者执行的权限
 ●stat.S_IRWXU:对于拥有者读、写、执行的权限
 ●stat.S_IRUSR: 对于拥有者读的权限
 ●stat.S_IWUSR: 对于拥有者写的权限
 ●stat.S_IXUSR: 对于拥有者执行的权限
 ●stat.S_IRWXG: 对于同组的人读写执行的权限
 ●stat.S_IRGRP: 对于同组读的权限
 ●stat.S_IWGRP:对于同组写的权限
 ●stat.S_IXGRP: 对于同组执行的权限
 ●stat.S_IRWXO: 对于其他组读写执行的权限
 ●stat.S_IROTH: 对于其他组读的权限
 ●stat.S_IWOTH: 对于其他组写的权限
 ●stat.S_IXOTH:对于其他组执行的权限
返回值
 该方法没有返回值。

实例

import os, sys, stat# 打开文件 "/tmp/foo.txt"fd = os.open( "/tmp", os.O_RDONLY )# 设置文件可通过组执行os.fchmod( fd, stat.S_IXGRP)# 设置文件可被其他用户写入os.fchmod(fd, stat.S_IWOTH)print "修改权限成功!!"# 关闭文件os.close( fd )

输出结果 

修改权限成功!!

os.fchown()
 os.fchown() 方法用于修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定。
格式如下:

os.fchown(fd, uid, gid)

参数
 ●fd – 文件描述符
 ●uid – 文件所有者的用户id
 ●gid – 文件所有者的用户组id
返回值
 该方法没有返回值。

实例

import os, sys, stat# 打开文件 "/tmp/foo.txt"fd = os.open( "/tmp", os.O_RDONLY )# 设置文件的用户 id 为 100os.fchown( fd, 100, -1)# 设置文件的用户组 id 为 100os.fchown( fd, -1, 50)print "修改权限成功!!"# 关闭文件os.close( fd )

输出结果

修改权限成功!!

os.fdatasync()
 os.fdatasync() 方法用于强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息。如果你需要刷新缓冲区可以使用该方法。
 格式如下:

os.fdatasync(fd)

 参数
  ●fd – 文件描述符
 返回值
  该方法没有返回值

 实例

import os, sys# 打开文件 "/tmp/foo.txt"fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 写入字符串os.write(fd, "This is test")# 使用 fdatasync() 方法os.fdatasync(fd)# 读取文件os.lseek(fd, 0, 0)str = os.read(fd, 100)print "读取的字符是 : ", str# 关闭文件os.close( fd )print "关闭文件成功!!"

 输出结果

读取的字符是 :  This is test关闭文件成功!!

os.fdopen()
 os.fdopen() 方法用于通过文件描述符 fd 创建一个文件对象,并返回这个文件对象。
格式如下:  

os.fdopen(fd, [, mode[, bufsize]])

参数
 ●fd – 打开的文件的描述符,在Unix下,描述符是一个小整数。
 ●mode – 可选,和buffersize参数和Python内建的open函数一样,mode参数可以指定『r,w,a,r+,w+,a+,b』等,表示文件的是只读的还是可以读写的,以及打开文件是以二进制还是文本形式打开。这些参数和C语言中的<stdio.h>中fopen函数中指定的mode参数类似。
 ●bufsize – 可选,指定返回的文件对象是否带缓冲:
buffersize=0,表示没有带缓冲;
bufsize=1,表示该文件对象是行缓冲的;bufsize=正数,表示使用一个指定大小的缓冲冲,单位为byte,但是这个大小不是精确的;
bufsize=负数,表示使用一个系统默认大小的缓冲,对于tty字元设备一般是行缓冲,而对于其他文件则一般是全缓冲。如果这个参数没有制定,则使用系统默认的缓冲设定。
返回值
 通过文件描述符返回的文件对象。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 获取以上文件的对象fo = os.fdopen(fd, "w+")# 获取当前文章print "Current I/O pointer position :%d" % fo.tell()# 写入字符串fo.write( "Python is a great language.\nYeah its great!!\n");# 读取内容os.lseek(fd, 0, 0)str = os.read(fd, 100)print "Read String is : ", str# 获取当前位置print "Current I/O pointer position :%d" % fo.tell()# 关闭文件os.close( fd )print "关闭文件成功!!"

输出结果

Current I/O pointer position :0Read String is :  This is testPython is a great language.Yeah its great!!Current I/O pointer position :45关闭文件成功!!

os.fpathconf()
 os.fpathconf() 方法用于返回一个打开的文件的系统配置信息。
 格式如下:

os.fpathconf(fd, name)

参数
 ●fd – 打开的文件的描述符。
 ●name – 可选,和buffersize参数和Python内建的open函数一样,mode参数可以指定『r,w,a,r+,w+,a+,b』等,表示文件的是只读的还是可以读写的,以及打开文件是以二进制还是文本形式打开。这些参数和C语言中的<stdio.h>中fopen函数中指定的mode参数类似。
 ●bufsize – 检索的系统配置的值,它也许是一个定义系统值的字符串,这些名字在很多标准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。一些平台也定义了一些额外的名字。这些名字在主操作系统上pathconf_names的字典中。对于不在pathconf_names中的配置变量,传递一个数字作为名字,也是可以接受的。
返回值  
 返回一个打开的文件的系统配置信息。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )print "%s" % os.pathconf_names# 获取最大文件连接数no = os.fpathconf(fd, 'PC_LINK_MAX')print "文件最大连接数为 :%d" % no# 获取文件名最大长度no = os.fpathconf(fd, 'PC_NAME_MAX')print "文件名最大长度为 :%d" % no# 关闭文件os.close( fd )print "关闭文件成功!!"

输出结果

{'PC_MAX_INPUT': 2, 'PC_VDISABLE': 8, 'PC_SYNC_IO': 9, 'PC_SOCK_MAXBUF': 12, 'PC_NAME_MAX': 3, 'PC_MAX_CANON': 1, 'PC_PRIO_IO': 11, 'PC_CHOWN_RESTRICTED': 6, 'PC_ASYNC_IO': 10, 'PC_NO_TRUNC': 7, 'PC_FILESIZEBITS': 13, 'PC_LINK_MAX': 0, 'PC_PIPE_BUF': 5, 'PC_PATH_MAX': 4}文件最大连接数为 :127文件名最大长度为 :255Closed the file successfully!!

os.fstat()
 os.fstat() 方法用于返回文件描述符fd的状态,类似 stat()。
fstat 方法返回的结构:
 ●st_dev: 设备信息
 ●st_ino: 文件的i-node值
 ●st_mode: 文件信息的掩码,包含了文件的权限信息,文件的类型信息(是普通文件还是管道文件,或者是其他的文件类型)
 ●st_nlink: 硬连接数
 ●st_uid: 用户ID
 ●st_gid: 用户组 ID
 ●st_rdev: 设备 ID (如果指定文件)
 ●st_size: 文件大小,以byte为单位
 ●st_blksize: 系统 I/O 块大小
 ●st_blocks: 文件的是由多少个 512 byte 的块构成的
 ●st_atime: 文件最近的访问时间
 ●st_mtime: 文件最近的修改时间
 ●st_ctime: 文件状态信息的修改时间(不是文件内容的修改时间)
格式如下:

os.fstat(fd)

参数
 ●fd – 文件的描述符。
返回值
 返回文件描述符fd的状态。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 获取元组info = os.fstat(fd)print "文件信息 :", info# 获取文件 uidprint "文件 UID :%d" % info.st_uid# 获取文件 gidprint "文件 GID  :%d" % info.st_gid# 关闭文件os.close( fd)

输出结果

文件信息 : (33261, 3753776L, 103L, 1, 0, 0,             102L, 1238783197, 1238786767, 1238786767)文件 UID :0文件 GID :0

os.fstatvfs()
 os.fstatvfs() 方法用于返回包含文件描述符fd的文件的文件系统的信息,类似 statvfs()。
 ●fstatvfs 方法返回的结构:
 ●f_bsize: 文件系统块大小
 ●f_frsize: 分栈大小
 ●f_blocks: 文件系统数据块总数
 ●f_bfree: 可用块数
 ●f_bavail:非超级用户可获取的块数
 ●f_files: 文件结点总数
 ●f_ffree: 可用文件结点数
 ●f_favail: 非超级用户的可用文件结点数
 ●f_fsid: 文件系统标识 ID
 ●f_flag: 挂载标记
 ●f_namemax: 最大文件长度
格式如下:

os.fstatvfs(fd)

参数
 ●fd – 文件的描述符。
返回值
 返回包含文件描述符fd的文件的文件系统的信息。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 获取元组info = os.fstatvfs(fd)print "文件信息 :", info# 获取文件名最大长度print "文件名最大长度 :%d" % info.f_namemax# 获取可用块数print "可用块数 :%d" % info.f_bfree# 关闭文件os.close( fd)

输出结果

文件信息 : (4096, 4096, 2621440L, 1113266L, 1113266L,              8929602L, 8764252L, 8764252L, 0, 255)文件名最大长度 :255可用块数 :1113266

os.fsync()
 os.fsync() 方法强制将文件描述符为fd的文件写入硬盘。在Unix, 将调用fsync()函数;在Windows, 调用 _commit()函数。
 如果你准备操作一个Python文件对象f, 首先f.flush(),然后os.fsync(f.fileno()), 确保与f相关的所有内存都写入了硬盘.在unix,Windows中有效。
格式如下:

os.fsync(fd)

参数
 ●fd – 文件的描述符。
返回值
 该方法没有返回值。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 写入字符串os.write(fd, "This is test")# 使用 fsync() 方法.os.fsync(fd)# 读取内容os.lseek(fd, 0, 0)str = os.read(fd, 100)print "读取的字符串为 : ", str# 关闭文件os.close( fd)print "关闭文件成功!!"

输出结果

读取的字符串为 :  This is test关闭文件成功!!

os.ftruncate()
 os.ftruncate() 裁剪文件描述符fd对应的文件, 它最大不能超过文件大小。
格式如下:

os.ftruncate(fd, length)

参数
 ●fd – 文件的描述符。
 ●length – 要裁剪文件大小。
返回值
 该方法没有返回值。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 写入字符串os.write(fd, "This is test - This is test")# 使用 ftruncate() 方法os.ftruncate(fd, 10)# 读取内容os.lseek(fd, 0, 0)str = os.read(fd, 100)print "读取的字符串是 : ", str# 关闭文件os.close( fd)print "关闭文件成功!!"

输出结果

读取的字符串是 :  This is te关闭文件成功!!

os.getcwd()
 os.getcwd() 方法用于返回当前工作目录。
 格式如下: 

os.getcwd()

参数
 ●无
返回值
 返回当前进程的工作目录。

实例

import os, sys# 切换到 "/var/www/html" 目录os.chdir("/var/www/html" )# 打印当前目录print "当前工作目录 : %s" % os.getcwd()# 打开 "/tmp"fd = os.open( "/tmp", os.O_RDONLY )# 使用 os.fchdir() 方法修改目录os.fchdir(fd)# 打印当前目录print "当前工作目录 : %s" % os.getcwd()# 关闭文件os.close( fd )

输出结果

当前工作目录 : /var/www/html当前工作目录 : /tmp

os.isatty()
 os.isatty() 方法用于判断如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。
格式如下:

os.isatty()

参数
 ●无
返回值
 如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 写入字符串os.write(fd, "This is test")# 使用 isatty() 查看文件ret = os.isatty(fd)print "返回值: ", ret# 关闭文件os.close( fd )

输出结果

返回值:  False

os.lchflags()
 os.lchflags() 方法用于设置路径的标记为数字标记,类似 chflags(),但是没有软链接。
格式如下:

os.lchflags(path, flags)

参数
●path – 设置标记的文件路径
●flags – 可以由一个或多个标记组合,多个使用”|”隔开:
 ●UF_NODUMP: 非转储文件
 ●UF_IMMUTABLE: 文件是只读的
 ●UF_APPEND: 文件只能追加内容
 ●UF_NOUNLINK: 文件不可删除
 ●UF_OPAQUE: 目录不透明,需要通过联合堆栈查看
 ●SF_ARCHIVED: 可存档文件(超级用户可设)
 ●SF_IMMUTABLE: 文件是只读的(超级用户可设)
 ●SF_APPEND: 文件只能追加内容(超级用户可设)
 ●SF_NOUNLINK: 文件不可删除(超级用户可设)
 ●SF_SNAPSHOT: 快照文件(超级用户可设)
返回值
 该方法没有返回值。

实例

import os, sys# 打开文件path = "/var/www/html/foo.txt"fd = os.open( path, os.O_RDWR|os.O_CREAT )# 关闭文件os.close( fd )# 修改文件标记ret = os.lchflags(path, os.UF_IMMUTABLE )print "修改文件标记成功!!"

输出结果

修改文件标记成功!!

os.lchmod()
 os.lchmod() 方法用于修改连接文件权限。
格式如下:

os.lchmod(path, mode)

参数
●path – 设置标记的文件路径
●mode – 可以是以下一个或多个组成,多个使用 “|” 隔开:
 ●stat.S_ISUID:设置 UID 位
 ●stat.S_ISGID: 设置组 ID 位
 ●stat.S_ENFMT: 系统文件锁定的执法行动
 ●stat.S_ISVTX: 在执行之后文字和图片
 ●stat.S_IREAD: 对于拥有者读的权限
 ●stat.S_IWRITE: 对于拥有者写的权限
 ●stat.S_IEXEC: 对于拥有者执行的权限
 ●stat.S_IRWXU:对于拥有者读、写、执行的权限
 ●stat.S_IRUSR: 对于拥有者读的权限
 ●stat.S_IWUSR: 对于拥有者写的权限
 ●stat.S_IXUSR: 对于拥有者执行的权限
 ●stat.S_IRWXG: 对于同组的人读写执行的权限
 ●stat.S_IRGRP: 对于同组读的权限
 ●stat.S_IWGRP:对于同组写的权限
 ●stat.S_IXGRP: 对于同组执行的权限
 ●stat.S_IRWXO: 对于其他组读写执行的权限
 ●stat.S_IROTH: 对于其他组读的权限
 ●stat.S_IWOTH: 对于其他组写的权限
 ●stat.S_IXOTH:对于其他组执行的权限
返回值
 该方法没有返回值。

实例

import os, sys# 打开文件path = "/var/www/html/foo.txt"fd = os.open( path, os.O_RDWR|os.O_CREAT )# 关闭文件os.close( fd )# 修改文件权限# 设置文件可以通过组执行os.lchmod( path, stat.S_IXGRP)# 设置文件可以被其他用户写入os.lchmod("/tmp/foo.txt", stat.S_IWOTH)print "修改权限成功!!"

输出结果

修改权限成功!!

os.lchown()
 os.lchown() 方法用于更改文件所有者,类似 chown,但是不追踪链接。
格式如下:

os.lchown(path, uid, gid)

参数
 ●path – 设置权限的文件路径
 ●uid – 所属用户 ID
 ●gid – 所属用户组 ID
返回值
 该方法没有返回值。

实例

import os, sys# 打开文件path = "/var/www/html/foo.txt"fd = os.open( path, os.O_RDWR|os.O_CREAT )# 关闭打开的文件os.close( fd )# 修改文件权限# 设置文件所属用户 IDos.lchown( path, 500, -1)# 设置文件所属用户组 IDos.lchown( path, -1, 500)print "修改权限成功!!"

输出结果

修改权限成功!!

os.link()
 os.link() 方法用于创建硬链接,名为参数 dst,指向参数 src。该方法对于创建一个已存在文件的拷贝是非常有用的。
 格式如下:

os.link(src, dst)

参数
 ●src – 用于创建硬连接的源地址
 ●dst – 用于创建硬连接的目标地址
返回值
 该方法没有返回值。

实例

import os, sys# 打开文件path = "/var/www/html/foo.txt"fd = os.open( path, os.O_RDWR|os.O_CREAT )# 关闭文件os.close( fd )# 创建以上文件的拷贝dst = "/tmp/foo.txt"os.link( path, dst)print "创建硬链接成功!!"

输出结果

创建硬链接成功!!

os.listdir()
 os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 ‘.’ 和’..’ 即使它在文件夹中。
格式如下:

os.listdir(path)

参数
 ●path – 需要列出的目录路径
返回值
 返回指定路径下的文件和文件夹列表。

实例

import os, sys# 打开文件path = "/var/www/html/"dirs = os.listdir( path )# 输出所有文件和文件夹for file in dirs:   print file

输出结果

test.htmstampfaq.htm_vti_txtrobots.txtitemlistingresumelistingwriting_effective_resume.htmadvertisebusiness.htmpapersresume

os.lseek()
 os.lseek() 方法用于设置文件描述符 fd 当前位置为 pos, how 方式修改。
 格式如下:

os.lseek(fd, pos, how)

参数
 ●fd – 文件描述符。
 ●pos – 这是相对于给定的参数 how 在文件中的位置。。
 ●how – 文件内参考位置。SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始。
返回值
 该方法没有返回值。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 写入字符串os.write(fd, "This is test")# 所有 fsync() 方法os.fsync(fd)# 从开始位置读取字符串os.lseek(fd, 0, 0)str = os.read(fd, 100)print "Read String is : ", str# 关闭文件os.close( fd )print "关闭文件成功!!"

输出结果

关闭文件成功!!

os.lstat()
 os.lstat() 方法用于类似 stat() 返回文件的信息,但是没有符号链接。在某些平台上,这是fstat的别名,例如 Windows。
 格式如下:

os.lstat(path)

参数
 ●path – 要返回信息的文件。
返回值
 返回文件信息。

实例

import os, sys# 打开文件path = "/var/www/html/foo.txt"fd = os.open( path, os.O_RDWR|os.O_CREAT )# 关闭打开的文件os.close( fd )# 获取元组info = os.lstat(path)print "文件信息 :", info# 获取文件 uidprint "文件 UID  :%d" % info.st_uid# 获取文件 gidprint "文件 GID :%d" % info.st_gid

输出结果

文件信息 : (33261, 3450178L, 103L, 1, 500, 500, 0L,              1238866944, 1238866944, 1238948312)文件 UID :500文件 GID :500

os.major()
 os.major() 方法用于从原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field)。
格式如下:

os.major(device)

参数
 ●device – 原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field)。
返回值
 返回设备major号码。

实例

import os, syspath = "/var/www/html/foo.txt"# 获取元组info = os.lstat(path)# 获取 major 和 minor 设备号major_dnum = os.major(info.st_dev)minor_dnum = os.minor(info.st_dev)print "Major 设备号 :", major_dnumprint "Minor 设备号 :", minor_dnum

输出结果

Major 设备号 : 0Minor 设备号 : 103

os.makedev()
 os.makedev() 方法用于以major和minor设备号组成一个原始设备号。
 格式如下:

os.makedev(major, minor)

参数
 ●major – Major 设备号。
 ●minor – inor 设备号。
返回值
 返回设备号。

实例

import os, syspath = "/var/www/html/foo.txt"# 获取元组info = os.lstat(path)# 获取 major 和 minor 设备号major_dnum = os.major(info.st_dev)minor_dnum = os.minor(info.st_dev)print "Major 设备号 :", major_dnumprint "Minor 设备号 :", minor_dnum# 生成设备号dev_num = os.makedev(major_dnum, minor_dnum)print "设备号 :", dev_num

输出结果

Major 设备号 : 0Minor 设备号 : 103设备号 : 103

os.makedirs()
 os.makedirs() 方法用于递归创建目录。像 mkdir(), 但创建的所有intermediate-level文件夹需要包含子目录。
 格式如下:

os.makedirs(path, mode=0o777)

参数
 ●path – 需要递归创建的目录。
 ●mode – 权限模式。
返回值
 该方法没有返回值。

实例

import os, sys# 创建的目录path = "/tmp/home/monthly/daily"os.makedirs( path, 0755 );print "路径被创建"

输出结果

路径被创建

os.minor()
 os.minor() 方法用于从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field )。
 格式如下:

os.minor(device)

参数
 ●device – 原始的设备(使用stat中的st_dev或者st_rdev field )
返回值
 返回设备 minor 号。

实例

import os, syspath = "/var/www/html/foo.txt"# 获取元组info = os.lstat(path)# 获取 major 和 minor 设备号major_dnum = os.major(info.st_dev)minor_dnum = os.minor(info.st_dev)print "Major 设备号 :", major_dnumprint "Minor 设备号 :", minor_dnum

输出结果

Major 设备号 : 0Minor 设备号 : 103

os.mkdir()
 os.mkdir() 方法用于以数字权限模式创建目录。默认的模式为 0777 (八进制)。
 格式如下:

os.mkdir(path[, mode])

参数
 ●path – 要创建的目录
 ●mode – 要为目录设置的权限数字模式
返回值
 该方法没有返回值。

实例

import os, sys# 创建的目录path = "/tmp/home/monthly/daily/hourly"os.mkdir( path, 0755 );print "目录已创建"

输出结果

目录已创建

os.mkfifo()
 os.mkfifo() 方法用于创建指令路径的管道,并设置权限模式。默认的模式为 0666 (八进制)。
 格式如下:

os.mkfifo(path[, mode])

参数
 ●path – 要创建的目录
 ●mode – 要为目录设置的权限数字模式
返回值
 该方法没有返回值。

实例

import os, sys# 创建的目录path = "/tmp/hourly"os.mkfifo( path, 0644 )print "路径被创建"

输出结果

路径被创建

os.mknod()
 os.mknod() 方法用于创建一个指定文件名的文件系统节点(文件,设备特别文件或者命名pipe)。
 格式如下:

os.mknod(filename[, mode=0600[, device=0]])

参数
 ●filename – 创建的文件系统节点
 ●mode – mode指定创建或使用节点的权限, 组合 (或者bitwise) stat.S_IFREG, stat.S_IFCHR, stat.S_IFBLK, 和stat.S_IFIFO (这些常数在stat模块). 对于 stat.S_IFCHR和stat.S_IFBLK, 设备定义了 最新创建的设备特殊文件 (可能使用 os.makedev()),其它都将忽略。
 ●device – 可选,指定创建文件的设备
返回值
该方法没有返回值。

实例

import osimport statfilename = '/tmp/tmpfile'mode = 0600|stat.S_IRUSR# 文件系统节点指定不同模式os.mknod(filename, mode)

输出结果

-rw-------. 1 root   root         0 Apr 30 02:38 tmpfile

os.open() 
 os.open() 方法用于打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777。
 格式如下:

os.open(file, flags[, mode])

参数
 ●file – 要打开的文件
 ●flags – 该参数可以是以下选项,多个使用 “|” 隔开:
  ●os.O_RDONLY: 以只读的方式打开
  ●os.O_WRONLY: 以只写的方式打开
  ●os.O_RDWR : 以读写的方式打开
  ●os.O_NONBLOCK: 打开时不阻塞
  ●os.O_APPEND: 以追加的方式打开
  ●os.O_CREAT: 创建并打开一个新文件
  ●os.O_TRUNC: 打开一个文件并截断它的长度为零(必须有写权限)
  ●os.O_EXCL: 如果指定的文件存在,返回错误
  ●os.O_SHLOCK: 自动获取共享锁
  ●os.O_EXLOCK: 自动获取独立锁
  ●os.O_DIRECT: 消除或减少缓存效果
  ●os.O_FSYNC : 同步写入
  ●os.O_NOFOLLOW: 不追踪软链接
 ●mode – 类似 chmod()。
返回值
 返回新打开文件的描述符。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )# 写入字符串os.write(fd, "This is test")# 关闭文件os.close( fd )print "关闭文件成功!!"

输出结果

关闭文件成功!!

os.openpty()
 os.openpty() 方法用于打开一个新的伪终端对。返回 pty 和 tty的文件描述符。
 格式如下:

os.openpty()

参数
 无
返回值
 返回文件描述符对,主从。

实例

import os# 主 pty, 从 ttym,s = os.openpty()print mprint s# 显示终端名s = os.ttyname(s)print mprint s

输出结果

343/dev/pty0

os.pathconf()
 os.pathconf() 方法用于返回一个打开的文件的系统配置信息。
 格式如下:

os.fpathconf(fd, name)

参数
 ●fg– 文件描述符
 ●name – 检索的系统配置的值,它也许是一个定义系统值的字符串,这些名字在很多标准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。一些平台也定义了一些额外的名字。这些名字在主操作系统上pathconf_names的字典中。对于不在pathconf_names中的配置变量,传递一个数字作为名字,也是可以接受的。
返回值
 返回文件的系统信息。

实例

import os, sys# 打开文件fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )print "%s" % os.pathconf_names# 获取文件最大连接数no = os.fpathconf(fd, 'PC_LINK_MAX')print "Maximum number of links to the file. :%d" % no# 获取文件名最大长度no = os.fpathconf(fd, 'PC_NAME_MAX')print "Maximum length of a filename :%d" % no# 关闭文件os.close( fd)print "关闭文件成功!!"

输出结果

关闭文件成功!!

os.pipe()
 os.pipe() 方法用于创建一个管道, 返回一对文件描述符(r, w) 分别为读和写。 
 格式如下:

os.pipe()

参数
 无
返回值
 返回文件描述符对。

实例

import os, sysprint "The child will write text to a pipe and "print "the parent will read the text written by child..."# file descriptors r, w for reading and writingr, w = os.pipe() processid = os.fork()if processid:    # This is the parent process     # Closes file descriptor w    os.close(w)    r = os.fdopen(r)    print "Parent reading"    str = r.read()    print "text =", str       sys.exit(0)else:    # This is the child process    os.close(r)    w = os.fdopen(w, 'w')    print "Child writing"    w.write("Text written by child...")    w.close()    print "Child closing"    sys.exit(0)

输出结果

The child will write text to a pipe andthe parent will read the text written by child...Parent readingChild writingChild closingtext = Text written by child...

os.popen()
 os.popen() 方法用于从一个命令打开一个管道。
 格式如下:

os.popen(command[, mode[, bufsize]])

参数
 command – 使用的命令。
 mode – 模式权限可以是 ‘r’(默认) 或 ‘w’。
 bufsize – 指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位)。负的bufsize意味着使用系统的默认值,一般来说,对于tty设备,它是行缓冲;对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。
返回值
 返回一个文件描述符号为fd的打开的文件对象

实例

import os, sys# 使用 mkdir 命令a = 'mkdir nwdir'b = os.popen(a,'r',1)print b

输出结果

open file 'mkdir nwdir', mode 'r' at 0x81614d0

os.read()
 os.read() 方法用于从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。
 格式如下:

os.read(fd,n)

参数
 ●fd – 文件描述符。
 ●n – 读取的字节。
返回值
 返回包含读取字节的字符串

实例

import os, sys# 打开文件fd = os.open("f1.txt",os.O_RDWR)# 读取文本ret = os.read(fd,12)print ret# 关闭文件os.close(fd)print "关闭文件成功!!"

输出结果

This is test关闭文件成功!!

os.readlink()
 os.readlink() 方法用于返回软链接所指向的文件。可能返回绝对或相对路径。
 格式如下:

os.readlink(path)

参数
 ●path – 要查找的软链接路径
返回值
返回软链接所指向的文件

实例

import ossrc = '/usr/bin/python'dst = '/tmp/python'# 创建软链接os.symlink(src, dst)# 使用软链接显示源链接path = os.readlink( dst )print path

输出结果

/usr/bin/python

os.remove()
 os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。
 格式如下:

os.remove(path)

参数
 ●path – 要移除的文件路径
返回值
 该方法没有返回值

实例

import os, sys# 列出目录print "目录为: %s" %os.listdir(os.getcwd())# 移除os.remove("aa.txt")# 移除后列出目录print "移除后 : %s" %os.listdir(os.getcwd())

输出结果

目录为:[ 'a1.txt','aa.txt','resume.doc' ]移除后 : [ 'a1.txt','resume.doc' ]

os.removedirs()
 os.removedirs() 方法用于递归删除目录。像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。
 格式如下:

os.removedirs(path)

参数
 ●path – 要移除的目录路径
返回值
 该方法没有返回值

实例

import os, sys# 列出目录print "目录为: %s" %os.listdir(os.getcwd())# 移除os.removedirs("/test")# 列出移除后的目录print "移除后目录为:" %os.listdir(os.getcwd())

输出结果

目录为:[  'a1.txt','resume.doc','a3.py','test' ]移除后目录为:[  'a1.txt','resume.doc','a3.py' ]

os.rename()
 os.rename() 方法用于命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。
 格式如下:

os.rename(src, dst)

参数
 ●src – 要修改的目录名
 ●dst – 修改后的目录名
返回值
 该方法没有返回值

实例

import os, sys# 列出目录print "目录为: %s"%os.listdir(os.getcwd())# 重命名os.rename("test","test2")print "重命名成功。"# 列出重命名后的目录print "目录为: %s" %os.listdir(os.getcwd())

输出结果

目录为:[  'a1.txt','resume.doc','a3.py','test' ]重命名成功。[  'a1.txt','resume.doc','a3.py','test2' ]

os.renames()
 os.renames() 方法用于递归重命名目录或文件。类似rename()。
 格式如下:

os.renames(old, new)

参数
 ●old – 要重命名的目录
 ●new –文件或目录的新名字。甚至可以是包含在目录中的文件,或者完整的目录树。
返回值
 该方法没有返回值

实例

import os, sysprint "当前目录为: %s" %os.getcwd()# 列出目录print "目录为: %s"%os.listdir(os.getcwd())# 重命名 "aa1.txt"os.renames("aa1.txt","newdir/aanew.txt")print "重命名成功。"# 列出重命名的文件 "aa1.txt"print "目录为: %s" %os.listdir(os.getcwd())

输出结果

当前目录为: /tmp目录为: [  'a1.txt','resume.doc','a3.py','aa1.txt','Administrator','amrood.admin' ]重命名成功。目录为: [  'a1.txt','resume.doc','a3.py','Administrator','amrood.admin' ]

os.rmdir()
 os.rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。
 格式如下:

os.rmdir(path)

参数
 path – 要删除的目录路径
返回值
 该方法没有返回值

实例

import os, sys# 列出目录print "目录为: %s"%os.listdir(os.getcwd())# 删除路径os.rmdir("mydir")# 列出重命名后的目录print "目录为: %s" %os.listdir(os.getcwd())

输出结果

目录为:[  'a1.txt','resume.doc','a3.py','mydir' ]目录为:[  'a1.txt','resume.doc','a3.py' ]

os.stat()
 os.stat() 方法用于在给定的路径上执行一个系统 stat 的调用。
 格式如下:

os.stat(path)

参数
 path – 指定路径
返回值
 stat 结构:
  ●st_mode: inode 保护模式
  ●st_ino: inode 节点号。
  ●st_dev: inode 驻留的设备。
  ●st_nlink: inode 的链接数。
  ●st_uid: 所有者的用户ID。
  ●st_gid: 所有者的组ID。
  ●st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
  ●st_atime: 上次访问的时间。
  ●st_mtime: 最后一次修改的时间。
  ●st_ctime: 由操作系统报告的”ctime”。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。

实例

import os, sys# 显示文件 "a2.py" 信息statinfo = os.stat('a2.py')print statinfo

输出结果

posix.stat_result(st_mode=33188, st_ino=3940649674337682L, st_dev=277923425L, st_nlink=1, st_uid=400, st_gid=401, st_size=335L, st_atime=1330498089, st_mtime=1330498089, st_ctime=1330498089)

os.stat_float_times()
 os.stat_float_times() 方法用于决定stat_result是否以float对象显示时间
 格式如下:

os.stat_float_times([newvalue])

参数
 ●newvalue – 如果为 True, 调用 stat() 返回 floats,如果 False, 调用 stat 返回 ints。如果没有该参数返回当前设置。
返回值
 返回 True 或 False。

实例

import os, sys# Stat 信息statinfo = os.stat('a2.py')print statinfostatinfo = os.stat_float_times()print statinfo

输出结果

posix.stat_result(st_mode=33188, st_ino=3940649674337682L, st_dev=277923425L, st_nlink=1, st_uid=400, st_gid=401, st_size=335L, st_atime=1330498089, st_mtime=1330498089, st_ctime=1330498089)True

os.statvfs()
 os.statvfs() 方法用于返回包含文件描述符fd的文件的文件系统的信息。
 格式如下:

os.statvfs([path])

参数
 ●path – 文件路径。
返回值
 返回的结构:
  ●f_bsize: 文件系统块大小
  ●f_frsize: 分栈大小
  ●f_blocks: 文件系统数据块总数
  ●f_bfree: 可用块数
  ●f_bavail:非超级用户可获取的块数
  ●f_files: 文件结点总数
  ●f_ffree: 可用文件结点数
  ●f_favail: 非超级用户的可用文件结点数
  ●f_fsid: 文件系统标识 ID
  ●f_flag: 挂载标记
  ●f_namemax: 最大文件长度

实例

import os, sys# 显示 "a1.py" 文件的 statvfs 信息stinfo = os.statvfs('a1.py')print stinfo

输出结果

posix.statvfs_result(f_bsize=4096, f_frsize=4096, f_blocks=1909350L, f_bfree=1491513L,f_bavail=1394521L, f_files=971520L, f_ffree=883302L, f_fvail=883302L, f_flag=0,f_namemax=255)

os.symlink()
 os.symlink() 方法用于创建一个软链接。
 格式如下:

os.symlink(src, dst)

参数
 ●src – 源地址。
 ●dst – 目标地址。
返回值
 该方法没有返回值。

实例

import ossrc = '/usr/bin/python'dst = '/tmp/python'# 创建软链接os.symlink(src, dst)print "软链接创建成功"

输出结果

软链接创建成功

os.tcgetpgrp()
 os.tcgetpgrp() 方法用于回与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组。
 格式如下:

os.tcgetpgrp(fd)

参数
 ●fd – 文件描述符。
返回值
 该方法返回进程组。

实例

import os, sys# 显示当前目录print "当前目录 :%s" %os.getcwd()# 修改目录到 /dev/ttyfd = os.open("/dev/tty",os.O_RDONLY)f = os.tcgetpgrp(fd)# 显示进程组print "相关进程组: "print fos.close(fd)print "关闭文件成功!!"

输出结果

当前目录 :/tmp相关进程组:2670关闭文件成功!!

os.tcsetpgrp()
 os.tcsetpgrp() 方法用于设置与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组为pg。
 格式如下:

os.tcsetpgrp(fd, pg)

参数
 ●fd – 文件描述符。
 ●pg – 关联的进程组。
返回值
 该方法没有返回值。

实例

import os, sys# 显示当前目录print "当前目录 :%s" %os.getcwd()# 修改目录到 /dev/ttyfd = os.open("/dev/tty",os.O_RDONLY)f = os.tcgetpgrp(fd)# 显示进程组print "关联进程组: "print f# 设置进程组os.tcsetpgrp(fd,2672)print "done"os.close(fd)print "关闭文件成功!!"

输出结果

当前目录 :/tmp关联进程组:2672done关闭文件成功!!

os.tempnam()
 os.tempnam() 方法用于返回唯一的路径名用于创建临时文件。
 格式如下: 

os.tempnam(dir, prefix)

参数
 ●dir – 要创建的临时文件路径。
 ●prefix – 临时文件前缀
返回值
 该方法返回唯一路径。

实例

import os, sys# 前缀为 runoob 的文件tmpfn = os.tempnam('/tmp/runoob,'runoob')print "这是一个唯一路径:"print tmpfn

输出结果

这是一个唯一路径:/tmp/runoob/runoobIbAco8

os.tmpfile()
 os.tmpfile() 方法用于返回一个打开的模式为(w+b)的临时文件对象,这文件对象没有文件夹入口,没有文件描述符,将会自动删除。
 格式如下:

os.tmpfile

参数
 无
返回值
 返回一个临时文件对象。

实例

import os# 创建临时文件对象tmpfile = os.tmpfile()tmpfile.write('临时文件在这创建了.....')tmpfile.seek(0)print tmpfile.read()tmpfile.close

输出结果

临时文件在这创建了.....

os.tmpnam()
 os.tmpnam() 方法用于为创建一个临时文件返回一个唯一的路径。
 格式如下:

os.tmpnam

参数
 无
返回值
 返回一个唯一的路径。

实例

import os, sys# 生成临时路径tmpfn = os.tmpnam()print "这是一个唯一的路径:"print tmpfn

输出结果

这是一个唯一的路径:/tmp/fileUFojpd

os.ttyname()
 os.ttyname() 方法用于返回一个字符串,它表示与文件描述符fd 关联的终端设备。如果fd 没有与终端设备关联,则引发一个异常。

os.ttyname(fd)

参数
 ●fd – 文件描述符
返回值
 返回一个字符串,它表示与文件描述符fd 关联的终端设备。

实例

import os, sys# 显示当前目录print "当前目录 :%s" %os.getcwd()# 修改目录为 /dev/ttyfd = os.open("/dev/tty",os.O_RDONLY)p = os.ttyname(fd)print "关联的终端为: "print pprint "done!!"os.close(fd)print "关闭文件成功!!"

输出结果

当前目录 :/tmp关联的终端为:/dev/ttydone!!关闭文件成功!!

os.unlink()
 os.unlink() 方法用于删除文件,如果文件是一个目录则返回一个错误。
 格式如下:

os.unlink(path)

参数
 ●path – 删除的文件路径
返回值
 该方法没有返回值。

实例

import os, sys# 列出目录print "目录为: %s" %os.listdir(os.getcwd())os.unlink("aa.txt")# 删除后的目录print "删除后的目录为 : %s" %os.listdir(os.getcwd())

输出结果

目录为: [ 'a1.txt','aa.txt','resume.doc']删除后的目录为 : [ 'a1.txt','resume.doc' ]

os.utime()
 os.utime() 方法用于设置指定路径文件最后的修改和访问时间。
 格式如下: 

os.utime(path, times)

参数
 ●path – 文件路径
 ●times – 如果时间是 None, 则文件的访问和修改设为当前时间 。 否则, 时间是一个 2-tuple数字, (atime, mtime) 用来分别作为访问和修改的时间。
返回值
该方法没有返回值。

实例

import os, sys# 显示文件的 stat 信息stinfo = os.stat('a2.py')print stinfo# 使用 os.stat 来接收文件的访问和修改时间print "a2.py 的访问时间: %s" %stinfo.st_atimeprint "a2.py 的修改时间: %s" %stinfo.st_mtime# 修改访问和修改时间os.utime("a2.py",(1330712280, 1330712292))print "done!!"

输出结果

posix.stat_result(st_mode=33188, st_ino=3940649674337682L, st_dev=277923425L, st_nlink=1, st_uid=400, st_gid=401, st_size=335L, st_atime=1330498070, st_mtime=1330498074, st_ctime=1330498065)a2.py 的访问时间: 1330498070a2.py 的修改时间: 1330498074done!!

os.walk()
 os.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,则通过软链接访问目录。
返回值
 该方法没有返回值。

实例

import osfor 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

os.write()
 os.write() 方法用于写入字符串到文件描述符 fd 中. 返回实际写入的字符串长度。
 格式如下:

os.write(fd, str)

参数
 ●fd – 文件描述符。
 ●str – 写入的字符串。
返回值
 该方法返回写入的实际位数。

实例

import os, sys# 打开文件fd = os.open("f1.txt",os.O_RDWR|os.O_CREAT)# 写入字符串ret = os.write(fd,"This is runoob.com site")# 输入返回值print "写入的位数为: "print  retprint "写入成功"# 关闭文件os.close(fd)print "关闭文件成功!!"

输出结果

写入的位数为: 23写入成功关闭文件成功!!
原创粉丝点击