Python OS 文件/目录方法
6、Python os.chroot() 方法
Python File(文件) 方法 Python OS 文件/目录方法
概述
os.chroot() 方法用于更改当前进程的根目录为指定的目录,使用该函数需要管理员权限。
语法
chroot()方法语法格式如下:
os.chroot(path);
参数
path – 要设置为根目录的目录。
返回值
该方法没有返回值。
实例
以下实例演示了 chroot() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os, sys
# 设置根目录为 /tmp
os.chroot("/tmp")
print "修改根目录成功!!"
执行以上程序输出结果为:
修改根目录成功!!
7、Python os.close() 方法
Python File(文件) 方法 Python OS 文件/目录方法
概述
os.close() 方法用于关闭指定的文件描述符 fd。
语法
close()方法语法格式如下:
os.close(fd);
参数
fd – 文件描述符。
返回值
该方法没有返回值。
实例
以下实例演示了 close() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os, sys
# 打开文件
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )
# 写入字符串
os.write(fd, "This is test")
# 关闭文件
os.close( fd )
print "关闭文件成功!!"
执行以上程序输出结果为:
关闭文件成功!!
8、Python os.closerange() 方法
Python File(文件) 方法 Python OS 文件/目录方法
概述
os.closerange() 方法用于关闭所有文件描述符 fd,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略。
语法
closerange()方法语法格式如下:
os.closerange(fd_low, fd_high);
参数
fd_low – 最小文件描述符
fd_high – 最大文件描述符
该方法类似于:
for fd in xrange(fd_low, fd_high):
try:
os.close(fd)
except OSError:
pass
返回值
该方法没有返回值。
实例
以下实例演示了 closerange() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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 "关闭文件成功!!"
执行以上程序输出结果为:
关闭文件成功!!
9、Python os.dup() 方法
Python File(文件) 方法 Python OS 文件/目录方法
概述
os.dup() 方法用于复制文件描述符 fd。
语法
dup()方法语法格式如下:
os.dup(fd);
参数
fd – 文件描述符
返回值
返回复制的文件描述符。
实例
以下实例演示了 dup() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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 "关闭所有文件成功!!"
执行以上程序输出结果为:
关闭所有文件成功!!
10、Python os.dup2() 方法
Python File(文件) 方法 Python OS 文件/目录方法
概述
os.dup2() 方法用于将一个文件描述符 fd 复制到另一个 fd2。
Unix, Windows 上可用。
语法
dup2()方法语法格式如下:
os.dup2(fd, fd2);
参数
fd – 要被复制的文件描述符
fd2 – 复制的文件描述符
返回值
没有返回值。
实例
以下实例演示了 dup2() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os, sys
# 打开文件
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )
# 写入字符串
os.write(fd, "This is test")
# 文件描述符为 1000
fd2 = 1000
os.dup2(fd, fd2);
# 在新的文件描述符上插入数据
os.lseek(fd2, 0, 0)
str = os.read(fd2, 100)
print "读取的字符串是 : ", str
# 关闭文件
os.close( fd )
print "关闭文件成功!!"
执行以上程序输出结果为:
读取的字符串是 : This is test
关闭文件成功!!
11、Python os.fchdir() 方法
Python File(文件) 方法 Python OS 文件/目录方法
概述
os.fchdir() 方法通过文件描述符改变当前工作目录。
Unix, Windows 上可用。
语法
fchdir()方法语法格式如下:
os.fchdir(fd);
参数
fd – 文件描述符
返回值
该方法没有返回值。
实例
以下实例演示了 fchdir() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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
12、Python os.fchmod() 方法
Python File(文件) 方法 Python OS 文件/目录方法
概述
os.fchmod() 方法用于改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限。
Unix上可用。
语法
fchmod()方法语法格式如下:
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:对于其他组执行的权限
返回值
该方法没有返回值。
实例
以下实例演示了 fchmod() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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 )
执行以上程序输出结果为:
修改权限成功!!
13、Python os.fchown() 方法
Python File(文件) 方法 Python OS 文件/目录方法
概述
os.fchown() 方法用于修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定。
Unix上可用。
语法
fchown()方法语法格式如下:
os.fchown(fd, uid, gid)
参数
fd – 文件描述符
uid – 文件所有者的用户id
gid – 文件所有者的用户组id
返回值
该方法没有返回值。
实例
以下实例演示了 fchown() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os, sys, stat
# 打开文件 "/tmp/foo.txt"
fd = os.open( "/tmp", os.O_RDONLY )
# 设置文件的用户 id 为 100
os.fchown( fd, 100, -1)
# 设置文件的用户组 id 为 100
os.fchown( fd, -1, 50)
print "修改权限成功!!"
# 关闭文件
os.close( fd )
执行以上程序输出结果为:
修改权限成功!!
14、Python os.fdatasync() 方法
Python File(文件) 方法 Python OS 文件/目录方法
概述
os.fdatasync() 方法用于强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息。如果你需要刷新缓冲区可以使用该方法。
Unix上可用。
语法
fdatasync()方法语法格式如下:
os.fdatasync(fd);
参数
fd – 文件描述符
返回值
该方法没有返回值。
实例
以下实例演示了 fdatasync() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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
关闭文件成功!!
15、Python os.fdopen() 方法
Python File(文件) 方法 Python OS 文件/目录方法
概述
os.fdopen() 方法用于通过文件描述符 fd 创建一个文件对象,并返回这个文件对象。
Unix, Windows上可用。
语法
fdopen()方法语法格式如下:
os.fdopen(fd, [, mode[, bufsize]]);
参数
fd – 打开的文件的描述符,在Unix下,描述符是一个小整数。
mode – 可选,和bufsize参数和Python内建的open函数一样,mode参数可以指定『r,w,a,r+,w+,a+,b』等,表示文件的是只读的还是可以读写的,以及打开文件是以二进制还是文本形式打开。这些参数和C语言中的<stdio.h>中fopen函数中指定的mode参数类似。
bufsize – 可选,指定返回的文件对象是否带缓冲:bufsize=0,表示没有带缓冲;bufsize=1,表示该文件对象是行缓冲的;bufsize=正数,表示使用一个指定大小的缓冲冲,单位为byte,但是这个大小不是精确的;bufsize=负数,表示使用一个系统默认大小的缓冲,对于tty字元设备一般是行缓冲,而对于其他文件则一般是全缓冲。如果这个参数没有制定,则使用系统默认的缓冲设定。
返回值
通过文件描述符返回的文件对象。
实例
以下实例演示了 fdopen() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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 :0
Read String is : This is testPython is a great language.
Yeah its great!!
Current I/O pointer position :45
关闭文件成功!!