Python3 os.fpathconf() 方法、Python3 os.lchown() 方法、Python3 os.fstat() 方法

Python3 os.fpathconf() 方法


概述

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

Unix上可用。

语法

fpathconf()方法语法格式如下:

os.fpathconf(fd, name)

参数

  • fd -- 打开的文件的描述符。

  • name -- 可选,和buffersize参数和Python内建的open函数一样,mode参数可以指定『r,w,a,r+,w+,a+,b』等,表示文件的是只读的还是可以读写的,以及打开文件是以二进制还是文本形式打开。这些参数和C语言中的中fopen函数中指定的mode参数类似。

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

返回值

返回一个打开的文件的系统配置信息。

实例

以下实例演示了 fpathconf() 方法的使用:

#!/usr/bin/python3

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
文件名最大长度为 :255
Closed the file successfully!!

Python3 os.lchown() 方法


概述

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

只支持在 Unix 下使用。

语法

lchown()方法语法格式如下:

os.lchown(path, uid, gid)

参数

  • path -- 设置权限的文件路径

  • uid -- 所属用户 ID

  • gid -- 所属用户组 ID

返回值

该方法没有返回值。

实例

以下实例演示了 lchown() 方法的使用:

#!/usr/bin/python3

import os, sys

# 打开文件
path = "/var/www/html/foo.txt"
fd = os.open( path, os.O_RDWR|os.O_CREAT )

# 关闭打开的文件
os.close( fd )

# 修改文件权限
# 设置文件所属用户 ID
os.lchown( path, 500, -1)

# 设置文件所属用户组 ID
os.lchown( path, -1, 500)

print ("修改权限成功!!")

执行以上程序输出结果为:

修改权限成功!!

Python3 os.fstat() 方法


概述

os.fstat() 方法用于返回文件描述符fd的状态,类似 stat()。

Unix,Windows上可用。

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: 文件状态信息的修改时间(不是文件内容的修改时间)

语法

fstat()方法语法格式如下:

os.fstat(fd)

参数

  • fd -- 文件的描述符。

返回值

返回文件描述符fd的状态。

实例

以下实例演示了 fstat() 方法的使用:

#!/usr/bin/python3

import os, sys

# 打开文件
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )

# 获取元组
info = os.fstat(fd)

print ("文件信息 :", info)

# 获取文件 uid
print ("文件 UID :%d" % info.st_uid)

# 获取文件 gid
print ("文件 GID  :%d" % info.st_gid)

# 关闭文件
os.close( fd)

执行以上程序输出结果为:

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

你可能感兴趣的:(Python,python,unix,linux)