非常教程

Python参考手册

文件和目录访问 | File & Directory Access

stat

源代码: Lib / stat.py

stat模块定义用于解释结果的常数和函数os.stat()os.fstat()以及os.lstat()(如果它们存在)。有关完整的详细信息stat()fstat()lstat()呼叫,请咨询您的系统的文档。

stat模块定义了以下功能来测试特定的文件类型:

stat.S_ISDIR(mode)

如果模式来自目录,则返回非零值。

stat.S_ISCHR(mode)

如果模式来自字符特殊设备文件,则返回非零值。

stat.S_ISBLK(mode)

如果模式来自块特殊设备文件,则返回非零值。

stat.S_ISREG(mode)

如果模式来自常规文件,则返回非零值。

stat.S_ISFIFO(mode)

如果模式来自FIFO(命名管道),则返回非零值。

stat.S_ISLNK(mode)

如果模式来自符号链接,则返回非零值。

stat.S_ISSOCK(mode)

如果模式来自套接字,则返回非零值。

为更一般的文件模式操作定义了两个额外的功能:

stat.S_IMODE(mode)

返回可由os.chmod()文件的权限位,粘滞位,set-group-id和set-user-id位(在支持它们的系统上)设置的文件模式部分。

stat.S_IFMT(mode)

返回描述文件类型的文件模式部分(由上述S_IS*()函数使用)。

通常,您可以使用这些os.path.is*()函数来测试文件的类型; 当您对同一文件进行多个测试并希望避免stat()每次测试的系统调用开销时,此处的函数都很有用。当检查有关未处理的文件的信息时,这些也很有用os.path,例如对块和字符设备的测试。

例:

import os, sys
from stat import *

def walktree(top, callback):
    '''recursively descend the directory tree rooted at top,
       calling the callback function for each regular file'''

    for f in os.listdir(top):
        pathname = os.path.join(top, f)
        mode = os.stat(pathname).st_mode
        if S_ISDIR(mode):
            # It's a directory, recurse into it
            walktree(pathname, callback)
        elif S_ISREG(mode):
            # It's a file, call the callback function
            callback(pathname)
        else:
            # Unknown file type, print a message
            print 'Skipping %s' % pathname

def visitfile(file):
    print 'visiting', file

if __name__ == '__main__':
    walktree(sys.argv[1], visitfile)

下面所有的变量都只是象征性的指标到返回的10元组os.stat()os.fstat()os.lstat()

stat.ST_MODE

Inode保护模式。

stat.ST_INO

Inode号码。

stat.ST_DEV

设备inode驻留在上。

stat.ST_NLINK

到inode的链接数。

stat.ST_UID

所有者的用户标识。

stat.ST_GID

所有者的组ID。

stat.ST_SIZE

纯文件的字节大小;等待某些特殊文件的数据量。

stat.ST_ATIME

上次访问的时间。

stat.ST_MTIME

上次修改时间。

stat.ST_CTIME

操作系统报告的“ctime”。在某些系统上(如Unix)是最后一次元数据更改的时间,而在另一些系统上(如Windows)则是创建时间(有关详细信息,请参阅平台文档)。

“文件大小”的解释根据文件类型而改变。对于普通文件,这是文件的大小(以字节为单位)。对于在Unix(包括Linux尤其是)的最风味FIFO和插座,“大小”是在等待调用时要读取的字节数os.stat()os.fstat()os.lstat(); 这有时会很有用,特别是在非阻塞打开后轮询其中一个特殊文件。根据底层系统调用的实现,其他字符和块设备的大小字段的含义各不相同。

下面的变量定义了ST_MODE字段中使用的标志。

使用上述函数比使用第一组标志更具可移植性:

stat.S_IFSOCK

插座。

stat.S_IFLNK

符号链接。

stat.S_IFREG

普通文件。

stat.S_IFBLK

阻止设备。

stat.S_IFDIR

目录。

stat.S_IFCHR

字符设备。

stat.S_IFIFO

FIFO。

以下标志也可用于模式参数os.chmod()

stat.S_ISUID

设置UID位。

stat.S_ISGID

设置组ID位。这个位有几个特殊用途。对于一个目录,它表示BSD语义将被用于该目录:其中创建的文件从目录中继承它们的组ID,而不是从创建过程的有效组ID中继承它们,并且在那里创建的目录也将获得该S_ISGID位设置。对于没有设置组执行位(S_IXGRP)的文件,set-group-ID位指示强制文件/记录锁定(另请参见S_ENFMT)。

stat.S_ISVTX

粘滞的位。在目录上设置此位时,表示该目录中的文件只能由文件所有者,目录所有者或特权进程重命名或删除。

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

其他人有执行许可。

stat.S_ENFMT

系统V文件锁定实施。该标志与S_ISGID以下内容共享:对没有设置组执行位(S_IXGRP)的文件执行文件/记录锁定。

stat.S_IREAD

Unix V7的代名词S_IRUSR

stat.S_IWRITE

Unix V7的代名词S_IWUSR

stat.S_IEXEC

Unix V7的代名词S_IXUSR

以下标志可用于flags参数中os.chflags()

stat.UF_NODUMP

不要转储文件。

stat.UF_IMMUTABLE

该文件可能不会更改。

stat.UF_APPEND

该文件只能附加到。

stat.UF_OPAQUE

通过联合堆栈查看时,该目录是不透明的。

stat.UF_NOUNLINK

该文件可能不会被重命名或删除。

stat.UF_COMPRESSED

该文件被压缩存储(Mac OS X 10.6+)。

stat.UF_HIDDEN

该文件不应该显示在GUI(Mac OS X 10.5+)中。

stat.SF_ARCHIVED

该文件可能已存档。

stat.SF_IMMUTABLE

该文件可能不会更改。

stat.SF_APPEND

该文件只能附加到。

stat.SF_NOUNLINK

该文件可能不会被重命名或删除。

stat.SF_SNAPSHOT

该文件是一个快照文件。

有关更多信息,请参阅* BSD或Mac OS系统手册页chflags(2)

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法