Python语言零基础入门教程(二十二)

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
关闭文件成功!!

猜你喜欢

转载自blog.csdn.net/weixin_44006731/article/details/129061346