16、Python os.fpathconf() 方法
概述
os.fpathconf() 方法用于返回一个打开的文件的系统配置信息。
Unix上可用。
语法
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中的配置变量,传递一个数字作为名字,也是可以接受的。
返回值
返回一个打开的文件的系统配置信息。
实例
以下实例演示了 fpathconf() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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!!
17、Python 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/python
# -*- coding: UTF-8 -*-
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
18、Python os.fstatvfs() 方法
概述
os.fstatvfs() 方法用于返回包含文件描述符fd的文件的文件系统的信息,类似 statvfs()。
Unix上可用。
fstatvfs 方法返回的结构:
f_bsize: 文件系统块大小
f_frsize: 分栈大小
f_blocks: 文件系统数据块总数
f_bfree: 可用块数
f_bavail:非超级用户可获取的块数
f_files: 文件结点总数
f_ffree: 可用文件结点数
f_favail: 非超级用户的可用文件结点数
f_fsid: 文件系统标识 ID
f_flag: 挂载标记
f_namemax: 最大文件长度
语法
fstatvfs()方法语法格式如下:
os.fstatvfs(fd)
参数
fd – 文件的描述符。
返回值
返回包含文件描述符fd的文件的文件系统的信息。
实例
以下实例演示了 fstatvfs() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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
19、Python os.fsync() 方法
概述
os.fsync() 方法强制将文件描述符为fd的文件写入硬盘。在Unix, 将调用fsync()函数;在Windows, 调用 _commit()函数。
如果你准备操作一个Python文件对象f, 首先f.flush(),然后os.fsync(f.fileno()), 确保与f相关的所有内存都写入了硬盘.在unix,Windows中有效。
Unix、Windows上可用。
语法
fsync()方法语法格式如下:
os.fsync(fd)
参数
fd – 文件的描述符。
返回值
该方法没有返回值。
实例
以下实例演示了 fsync() 方法的使用:
#!/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")
# 使用 fsync() 方法.
os.fsync(fd)
# 读取内容
os.lseek(fd, 0, 0)
str = os.read(fd, 100)
print "读取的字符串为 : ", str
# 关闭文件
os.close( fd)
print "关闭文件成功!!"
执行以上程序输出结果为:
读取的字符串为 : This is test
关闭文件成功!!
20、Python os.ftruncate() 方法
概述
os.ftruncate() 裁剪文件描述符fd对应的文件, 它最大不能超过文件大小。
Unix, Windows上可用。
语法
ftruncate()方法语法格式如下:
os.ftruncate(fd, length)
参数
fd – 文件的描述符。
length – 要裁剪文件大小。
返回值
该方法没有返回值。
实例
以下实例演示了 ftruncate() 方法的使用:
#!/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 - 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
关闭文件成功!!
21、Python os.getcwd() 方法
概述
os.getcwd() 方法用于返回当前工作目录。
语法
getcwd()方法语法格式如下:
os.getcwd()
参数
无
返回值
返回当前进程的工作目录。
实例
以下实例演示了 getcwd() 方法的使用:
实例
#!/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
22、Python os.getcwdu() 方法
概述
os.getcwdu() 方法用于返回一个当前工作目录的Unicode对象。
Unix, Windows 系统下可用。
语法
getcwdu()方法语法格式如下:
os.getcwdu()
参数
无
返回值
返回一个当前工作目录的Unicode对象。
实例
以下实例演示了 getcwdu() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os, sys
# 切换到 "/var/www/html" 目录
os.chdir("/var/www/html" )
# 打印当前目录
print "当前工作目录 : %s" % os.getcwdu()
# 打开 "/tmp"
fd = os.open( "/tmp", os.O_RDONLY )
# 使用 os.fchdir() 方法修改目录
os.fchdir(fd)
# 打印当前目录
print "当前工作目录 : %s" % os.getcwdu()
# 关闭文件
os.close( fd )
执行以上程序输出结果为:
当前工作目录 : /var/www/html
当前工作目录 : /tmp
23、Python os.isatty() 方法
概述
os.isatty() 方法用于判断如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。
语法
isatty()方法语法格式如下:
os.isatty()
参数
无
返回值
如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。
实例
以下实例演示了 isatty() 方法的使用:
#!/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")
# 使用 isatty() 查看文件
ret = os.isatty(fd)
print "返回值: ", ret
# 关闭文件
os.close( fd )
执行以上程序输出结果为:
返回值: False
24、Python os.lchflags() 方法
概述
os.lchflags() 方法用于设置路径的标记为数字标记,类似 chflags(),但是没有软链接。
只支持在 Unix 下使用。
语法
lchflags()方法语法格式如下:
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: 快照文件(超级用户可设)
返回值
该方法没有返回值。
实例
以下实例演示了 lchflags() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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 "修改文件标记成功!!"
执行以上程序输出结果为:
修改文件标记成功!!
25、Python os.lchmod() 方法
概述
os.lchmod() 方法用于修改连接文件权限。
只支持在 Unix 下使用。
语法
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:对于其他组执行的权限
返回值
该方法没有返回值。
实例
以下实例演示了 lchmod() 方法的使用:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
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 "修改权限成功!!"
执行以上程序输出结果为:
修改权限成功!!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/143820.html