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

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 Python语言零基础入门教程(二十三),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!