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写入成功关闭文件成功!!
- Python os模块手册
- Python 模块学习:os模块
- Python 模块学习:os模块
- Python 模块学习:os模块
- Python 模块学习:os模块
- Python模块学习-os模块
- Python 模块学习:os模块
- Python 模块学习:os模块
- Python 模块学习:os模块
- Python 模块学习:os模块
- Python 模块学习:os模块
- Python 模块学习:os模块
- Python:os模块-subprocess模块
- Python 模块学习:os模块
- python模块之os模块
- Python 模块学习:os模块
- Python 模块学习:os模块
- Python 模块学习:os模块
- 应用IBatisNet+Castle进行项目的开发
- C/S模式和B/S模式的区别
- 去除文本框和按钮中间的空间
- 一个通用的事件监听函数,能支持匿名函数的使用
- Tensorflow创建循环神经网络
- Python os模块手册
- HeadFirstJava 10数字与静态
- 复数的物理意义是什么?
- Mysql数据库表查询中 inner join,left join,right join 详解
- 网络状态码(HTTP状态码 )
- 中文乱码小结
- 使用node.js搭建简易的个人博客(一)
- 第八讲 拦截器
- 深入探讨array_map、foreach、for循环处理数组的效率