我不知道Django为什么这么做,这是关于os.s的

2024-04-16 04:55:07 发布

您现在位置:Python中文网/ 问答频道 /正文

这样做的好处是什么:

import os
ST_MODE  = 0
ST_INO   = 1
ST_DEV   = 2
ST_NLINK = 3
ST_UID   = 4
ST_GID   = 5
ST_SIZE  = 6
ST_ATIME = 7
ST_MTIME = 8
ST_CTIME = 9

# Extract bits from the mode

def S_IMODE(mode):
    return mode & 07777

def S_IFMT(mode):
    return mode & 0170000

# Constants used as S_IFMT() for various file types
# (not all are implemented on all systems)

S_IFDIR  = 0040000
S_IFCHR  = 0020000
S_IFBLK  = 0060000
S_IFREG  = 0100000
S_IFIFO  = 0010000
S_IFLNK  = 0120000
S_IFSOCK = 0140000

# Functions to test for each file type

def S_ISDIR(mode):
    return S_IFMT(mode) == S_IFDIR
def isdir(path):
    """Test whether a path is a directory"""
    try:
        st = os.stat(path)
    except os.error:
        return False
    return S_ISDIR(st.st_mode)#this code ,why

谢谢


Tags: pathimportforreturnosmodedefall
1条回答
网友
1楼 · 发布于 2024-04-16 04:55:07

有什么好处?我想其中一个(否定的)方法是阻止代码尝试将目录作为常规文件处理。如果运行以下代码:

myprog *

shell将*更改为当前目录中所有文件(包括子目录、管道、设备节点和各种其他特殊文件)的列表,相当于:

myprog mydir1 mydir2 myfile1.jpg myfile2.txt mynamedpipe1

测试参数之一是否为非常规文件对于确保只处理所需类型的文件至关重要。例如,您不希望打开一个管道文件进行输入和读取,直到文件结束,因为只有当管道的另一端将其关闭时,才会出现文件结束。看起来你的程序已经冻结了。你知道吗

另一种可能性(肯定的)是确保程序预期的目录(例如临时目录或配置文件目录)实际上目录。你知道吗

这是因为UNIX的理念-所有的东西都是一个文件,如果您只需要某些类型的文件,就必须自己过滤它们。你知道吗

它的工作方式是stat返回关于一个文件的各种精彩信息,其中一个信息就是它的模式。在此模式中,某些位被设置为指示文件的类型。你知道吗

SèISDIR函数测试表示文件是目录的特定位组合,在这种情况下返回true。如果这些位未设置为指示目录或文件不存在,则返回false。你知道吗

相关问题 更多 >