OS模块文档翻译

该模块提供了一种使用操作系统相关功能的便携方式。如果您只想读取或写入文件,请参阅open(),如果要操作路径,请参阅os.path模块,如果要读取命令行上所有文件中的所有行,请参阅fileinput 模块。有关创建临时文件和目录的信息,请参阅tempfile 模块,有关高级文件和目录的处理,请参阅shutil 模块。

关于这些功能的可用性的说明:

  • 所有内置操作系统相关的Python模块的设计都是这样的,只要相同的功能可用,它就使用相同的接口; 例如,该函数以相同的格式(恰好源自POSIX接口)os.stat(path)返回有关路径的统计信息。
  • 特定操作系统特有的扩展也可通过该os模块获得,但使用它们当然是可移植性的威胁。
  • “可用性:Unix”注意表示此功能通常在Unix系统上找到。它没有声明它在特定操作系统上的存在。
  • 如果没有单独注明,Mac OS X支持声称“可用性:Unix”的所有功能,它们构建在Unix核心之上。

注意

osError

如果文件名和路径无效或无法访问,或者其他参数类型正确但操作系统不接受,则此模块中的所有函数都会引发。

  • 异常os.error

    内置osError异常的别名。

  • os.name

    导入的操作系统相关模块的名称。下列名称当前已注册:'posix''nt''os2''ce''java''riscos'。也可以看看 sys.platform具有更详细讲解。 os.uname()提供依赖于系统的版本信息。该platform模块提供系统身份的详细检查。

15.1.1。处理参数

这些功能和数据项提供信息并对当前进程和用户进行操作。

  • os.environ

    映射表示字符串环境对象。例如, environ['HOME']是主目录的路径名(在某些平台上),相当于getenv("HOME")C语言。在第一次[os](https://docs.python.org/2/library/os.html#module-os)导入模块时捕获此映射,通常在Python启动期间作为处理的一部分site.pyos.environ除了通过os.environ直接修改所做的更改之外,在此时间之后对环境所做的更改不会反映出来。如果平台支持该[putenv()](https://docs.python.org/2/library/os.html#os.putenv)功能,则该映射可用于修改环境以及查询环境。 [putenv()](https://docs.python.org/2/library/os.html#os.putenv)将在修改映射时自动调用。注意 [putenv()](https://docs.python.org/2/library/os.html#os.putenv)直接调用不会改变os.environ,因此最好修改os.environ。注意 在某些平台上,包括FreeBSD和Mac OS X,设置environ可能会导致内存泄漏。请参阅系统文档putenv()。如果[putenv()](https://docs.python.org/2/library/os.html#os.putenv)未提供,则可以将此映射的修改副本传递给适当的进程创建函数,以使子进程使用已修改的环境。如果平台支持该[unsetenv()](https://docs.python.org/2/library/os.html#os.unsetenv)功能,则可以删除此映射中的项目以取消设置环境变量。[unsetenv()](https://docs.python.org/2/library/os.html#os.unsetenv)将在删除项目os.environ时以及在调用其中一个pop()或多个clear()方法时自动调用。*版本2.6中更改:*调用os.environ.clear()和时也取消设置环境变量os.environ.pop()`。

  • os.chdir路径

  • os.fchdirfd

  • os.getcwd()

    文件和目录中描述了这些功能。

  • os.ctermid()

    返回与进程控制终端对应的文件名。可用性:Unix。

  • os.getegid()

    返回当前进程的有效组ID。这对应于当前进程中正在执行的文件上的“set id”位。可用性:Unix。

  • os.geteuid()

    返回当前进程的有效用户ID。可用性:Unix。

  • os.getgid()

    返回当前进程的实际组ID。可用性:Unix。

  • os.getgroups()

    返回与当前进程关联的补充组ID的列表。可用性:Unix。注意 在Mac OS X上,getgroups()行为与其他Unix平台略有不同。如果Python解释器是使用部署目标10.5或更早版本构建的,则getgroups()返回与当前用户进程关联的有效组ID列表; 此列表仅限于系统定义的条目数,通常为16,并且可以通过调用(setgroups()如果具有适当的特权)进行修改。如果使用大于的部署目标构建10.5,则 getgroups()返回与进程的有效用户ID关联的用户的当前组访问列表; 组访问列表可以在进程的生命周期内发生变化,不受调用的影响setgroups(),并且其长度不限于16. MACOSX_DEPLOYMENT_TARGET可以使用获取部署目标值sysconfig.get_config_var()

  • os.initgroups用户名gid

    调用系统initgroups()以使用指定用户名为成员的所有组以及指定的组ID初始化组访问列表。可用性:Unix。版本2.7中的新功能。

  • os.getlogin()

    返回在进程的控制终端上登录的用户的名称。对于大多数用途,使用环境变量更有用LOGNAME找出用户是谁,或 pwd.getpwuid(os.getuid())[0]获取进程真实用户ID的登录名。可用性:Unix。

  • os.getpgidpid

    使用进程ID pid返回进程的进程组ID 。如果pid为0,则返回当前进程的进程组id。可用性:Unix。版本2.3中的新功能。

  • os.getpgrp()

    返回当前进程组的id。可用性:Unix。

  • os.getpid()

    返回当前进程ID。可用性:Unix,Windows。

  • os.getppid()

    返回父进程的id。可用性:Unix。

  • os.getresuid()

    返回一个元组(ruid,euid,suid),表示当前进程的真实有效和已保存的用户ID。可用性:Unix。版本2.7中的新功能。

  • os.getresgid()

    返回一个元组(rgid,egid,sgid),表示当前进程的真实有效和已保存的组ID。可用性:Unix。版本2.7中的新功能。

  • os.getuid()

    返回当前进程的真实用户ID。可用性:Unix。

  • os.getenvvarname [,value ] )

    返回环境变量的值VARNAME如果它存在,或价值 ,如果它没有。 默认为None。可用性:Unix,Windows的大多数风格。

  • os.putenvvarnamevalue

    将名为varname的环境变量设置为字符串。对环境的这种变化影响开始与子进程os.system()popen()fork()execv()。可用性:Unix,Windows的大多数风格。注意 在某些平台上,包括FreeBSD和Mac OS X,设置environ可能会导致内存泄漏。请参阅putenv的系统文档。当putenv()被支持,分配到项目os.environ被自动转换成对应的呼叫putenv(); 但是,调用putenv()不更新os.environ,因此实际上最好分配给项目os.environ

  • os.setegidegid

    设置当前进程的有效组ID。可用性:Unix。

  • os.seteuideuid

    设置当前进程的有效用户ID。可用性:Unix。

  • os.setgidgid

    设置当前进程的组ID。可用性:Unix。

  • os.setgroups

    将与当前进程关联的补充组ID列表设置为 必须是序列,并且每个元素必须是标识组的整数。此操作通常仅供超级用户使用。可用性:Unix。2.2版中的新功能。注意 在Mac OS X上,的长度不得超过系统定义的最大有效组ID数,通常为16.有关getgroups()可能无法通过调用setgroups()返回相同组列表的情况,请参阅文档。

  • os.setpgrp()

    调用系统调用setpgrp()或根据实现的版本(如果有)。有关语义,请参阅Unix手册。setpgrp(0, 0)可用性:Unix。

  • os.setpgidpidpgrp

    调用系统调用setpgid()以将具有id pid的进程的进程组ID设置为具有id pgrp的进程组。有关语义,请参阅Unix手册。可用性:Unix。

  • os.setregidrgidegid

    设置当前进程的真实有效组ID。可用性:Unix。

  • os.setresgidrgidegidsgid

    设置当前进程的真实,有效和已保存的组ID。可用性:Unix。版本2.7中的新功能。

  • os.setresuidruideuidsuid

    设置当前进程的真实,有效和已保存的用户ID。可用性:Unix。版本2.7中的新功能。

  • os.setreuidruideuid

    设置当前进程的真实有效用户ID。可用性:Unix。

  • os.getsidpid

    拨打系统电话getsid()。有关语义,请参阅Unix手册。可用性:Unix。版本2.4中的新功能。

  • os.setsid()

    拨打系统电话setsid()。有关语义,请参阅Unix手册。可用性:Unix。

  • os.setuiduid

    设置当前进程的用户标识。可用性:Unix。

  • os.strerrorcode

    返回对应于错误代码错误消息代码。在给定未知错误编号时strerror()返回的平台上NULLValueError引发。可用性:Unix,Windows。

  • os.umaskmask

    设置当前数字umask并返回先前的umask。可用性:Unix,Windows。

  • os.uname()

    返回包含标识当前操作系统的信息的5元组。元组包含5个字符串:。有些系统会将节点名截断为8个字符或前导组件; 获取主机名的更好方法是 甚 至是 。(sysname, nodename, release, version,machine)socket.gethostname()socket.gethostbyaddr(socket.gethostname())可用性:最新的Unix版本。

  • os.unsetenvvarname

    取消设置(删除)名为varname的环境变量。对环境的这种变化影响开始与子进程os.system()popen()fork()execv()。当unsetenv()被支撑,在项目的删除os.environ自动转换成一个相应的呼叫unsetenv(); 但是,调用unsetenv()不更新os.environ,所以实际上最好删除项目os.environ。可用性:Unix,Windows的大多数风格。

15.1.2。文件对象创建

这些函数创建新的文件对象。(另见open()。)

  • os.fdopenfd [,mode [,bufsize ] ] )

    返回连接到文件描述符fd的打开文件对象。该模式BUFSIZE参数的含义对应参数内置相同的open()功能。如果fdopen()引发异常,则会使fd保持不变(未闭合)。可用性:Unix,Windows。改变在2.3版本:当指定的模式参数必须从现在开始与一个字母 'r''w'或者'a',否则ValueError提高。在版本2.5中更改:在Unix上,当mode参数开始时'a',在文件描述符上设置O_APPEND标志(fdopen()实现已在大多数平台上执行)。

  • os.popencommand[,mode [,bufsize ] ] )

    打开或发出命令的管道。返回值是连接到管道的打开文件对象,可以根据模式'r'(默认)还是读取或写入'w'。该BUFSIZE参数的含义与相应的参数内置相同的open()功能。命令的退出状态(以指定的格式编码wait())可用作close()文件对象方法的返回值,但退出状态为零(无错误终止)时None 返回。可用性:Unix,Windows。从版本2.6开始不推荐使用:此功能已过时。使用该subprocess模块。请特别检查“ 使用子过程模块替换旧函数”部分。在2.0版本中更改:在早期版本的Python中,此功能在Windows下不可靠。这是因为使用_popen()了Windows提供的库中的函数。较新版本的Python不使用Windows库中的破坏实现。

  • os.tmpfile()

    返回以更新模式(w+b)打开的新文件对象。该文件没有与之关联的目录条目,并且一旦没有该文件的文件描述符,将自动删除。可用性:Unix,Windows。

有许多不同的popen*()函数提供了稍微不同的创建子进程的方法。

从版本2.6开始不推荐使用:所有popen*()功能都已过时。使用该subprocess 模块。

对于每个popen*()变体,如果指定了bufsize,则它指定I / O管道的缓冲区大小。模式,如果提供,应该是字符串'b''t'; 在Windows上,需要确定是以二进制还是文本模式打开文件对象。模式的默认值 是't'

此外,对于这些变体中的每一个,在Unix上,cmd可能是一个序列,在这种情况下,参数将直接传递给程序而无需shell干预(如同os.spawnv())。如果cmd是一个字符串,它将被传递给shell(与之一样os.system())。

这些方法无法从子进程检索退出状态。控制输入和输出流以及检索返回码的唯一方法是使用该subprocess模块; 这些仅适用于Unix。

有关与使用这些功能相关的可能死锁条件的讨论,请参阅流控制问题

  • os.popen2cmd [,mode [,bufsize ] ] )

    执行cmd作为子进程并返回文件对象。(child_stdin, child_stdout)从版本2.6开始不推荐使用:此功能已过时。使用该subprocess模块。请特别检查“ 使用子过程模块替换旧函数”部分。可用性:Unix,Windows。2.0版中的新功能。

  • os.popen3cmd [,mode [,bufsize ] ] )

    执行cmd作为子进程并返回文件对象。(child_stdin, child_stdout, child_stderr)从版本2.6开始不推荐使用:此功能已过时。使用该subprocess模块。请特别检查“ 使用子过程模块替换旧函数”部分。可用性:Unix,Windows。2.0版中的新功能。

  • os.popen4cmd [,mode [,bufsize ] ] )

    执行cmd作为子进程并返回文件对象。(child_stdin, child_stdout_and_stderr)从版本2.6开始不推荐使用:此功能已过时。使用该subprocess模块。请特别检查“ 使用子过程模块替换旧函数”部分。可用性:Unix,Windows。2.0版中的新功能。

(注意,从子进程的角度命名,因此child_stdin是子进程的标准输入。)child_stdin, child_stdout, and child_stderr

popen2使用相同名称的函数在模块中也可以使用此功能,但这些函数的返回值具有不同的顺序。

15.1.3。文件描述符操作

这些函数对使用文件描述符引用的I / O流进行操作。

文件描述符是与当前进程打开的文件相对应的小整数。例如,标准输入通常是文件描述符0,标准输出是1,标准错误是2.然后,进程打开的其他文件将分配3,4,5等。名称“文件描述符”略有欺骗性; 在Unix平台上,套接字和管道也由文件描述符引用。

fileno()方法可用于在需要时获得与文件对象相关联的文件描述符。请注意,直接使用文件描述符将绕过文件对象方法,忽略诸如内部缓冲数据等方面。

  • os.closefd

    关闭文件描述符fd。可用性:Unix,Windows。注意 此函数用于低级I / O,必须应用于由os.open()或返回的文件描述符pipe()。要关闭一个“文件对象”由内置函数返回open()或通过popen()fdopen()使用它的close()方法。

  • os.closerangefd_lowfd_high

    关闭所有文件描述符,从fd_low(包括)到fd_high(不包括),忽略错误。相当于:for fd in xrange(fd_low, fd_high): try: os.close(fd) except OSError: pass可用性:Unix,Windows。2.6版中的新功能。

  • os.dupfd

    返回文件描述符fd的副本。可用性:Unix,Windows。

  • os.dup2fdfd2

    将文件描述符fd重复到fd2,必要时首先关闭后者。可用性:Unix,Windows。

  • os.fchmodfdmode

    fd给出的文件模式更改为数字模式。有关模式的chmod()可能值,请参阅文档。可用性:Unix。2.6版中的新功能。

  • os.fchownfduidgid

    fd给出的文件的所有者和组ID更改为数字uidgid。要保持其中一个ID不变,请将其设置为-1。可用性:Unix。2.6版中的新功能。

  • os.fdatasyncfd

    强制将filedescriptor fd文件写入磁盘。不强制更新元数据。可用性:Unix。注意 此功能在MacOS上不可用。

  • os.fpathconffd名字

    返回与打开文件相关的系统配置信息。name 指定要检索的配置值; 它可以是一个字符串,它是已定义系统值的名称; 这些名称在许多标准(POSIX.1,Unix 95,Unix 98和其他标准)中指定。一些平台也定义了其他名称。主机操作系统已知的名称在pathconf_names字典中给出。对于未包含在该映射中的配置变量,也接受传递name的整数。如果name是一个字符串而且未知,ValueError则引发。如果主机系统不支持name的特定值,即使它包含在内pathconf_namesosError](https://docs.python.org/2/library/exceptions.html#exceptions.OSError)也会引发 [errno.EINVAL`错误编号。可用性:Unix。

  • os.fstatfd

    返回文件描述符fd的状态,如stat()。可用性:Unix,Windows。

  • os.fstatvfsfd

    返回有关包含与文件描述符fd关联的文件的文件系统的信息,例如statvfs()。可用性:Unix。

  • os.fsyncfd

    强制将filedescriptor fd文件写入磁盘。在Unix上,这会调用本机fsync()函数; 在Windows上,MS _commit()功能。如果您从Python文件对象f开始,首先执行f.flush(),然后执行os.fsync(f.fileno()),以确保与f关联的所有内部缓冲区都写入磁盘。可用性:Unix和Windows从2.2.3开始。

  • os.ftruncatefd长度

    截断与文件描述符fd对应的文件,使其最大 长度为字节。可用性:Unix。

  • os.isattyfd

    返回True如果文件描述符FD是开放的,连接到一个TTY(类似的)设备,否则False

  • os.lseekfdposhow

    设置文件描述符的当前位置FD到位置POS,通过修改如何SEEK_SET0相对于文件的开头位置设定; SEEK_CUR或者1相对于当前位置设置它; SEEK_END或者2相对于文件末尾设置它。从头开始返回以字节为单位的新光标位置。可用性:Unix,Windows。

  • os.SEEK_SET

  • os.SEEK_CUR

  • os.SEEK_END

    lseek()函数的参数。它们的值分别为0,1和2。可用性:Windows,Unix。版本2.5中的新功能。

  • os.open文件标志[,模式] )

    打开该文件的文件,并根据设定的各种标志的标志,并可能根据其模式模式。默认模式0777(八进制),并且首先屏蔽当前的umask值。返回新打开文件的文件描述符。有关标志和模式值的说明,请参阅C运行时文档; 标志常量(如O_RDONLYO_WRONLY)也在此模块中定义(请参阅open()标志常量)。特别是,在Windows O_BINARY上需要添加 以二进制模式打开文件。可用性:Unix,Windows。注意 此功能适用于低级I / O. 对于正常使用,使用内置函数open(),该函数返回带有read()write()方法(以及更多)的“文件对象” 。要将文件描述符包装在“文件对象”中,请使用fdopen()

  • os.openpty()

    打开一个新的伪终端对。分别为pty和tty 返回一对文件描述符。对于(稍微)更便携的方法,请使用该模块。(master, slave)pty可用性:Unix的一些风格。

  • os.pipe()

    创建一个管道。返回一对可用于读写的文件描述符。(r, w)可用性:Unix,Windows。

  • os.readfdn

    从文件描述符fd读取最多n个字节。返回包含读取的字节的字符串。如果已到达fd引用的文件末尾,则返回空字符串。可用性:Unix,Windows。注意 此函数用于低级I / O,必须应用于由os.open()或返回的文件描述符pipe()。读取由内置函数返回一个“文件对象” open()popen()fdopen()sys.stdin使用它read()readline()方法。

  • os.tcgetpgrpfd

    返回与fd给出的终端关联的进程组(返回的打开文件描述符os.open())。可用性:Unix。

  • os.tcsetpgrpfdpg

    将与fd(返回的打开文件描述符os.open())给出的终端关联的进程组设置为pg。可用性:Unix。

  • os.ttynamefd

    返回一个字符串,指定与文件描述符fd关联的终端设备。如果fd未与终端设备关联,则会引发异常。可用性:Unix。

  • os.writefdstr

    将字符串str写入文件描述符fd。返回实际写入的字节数。可用性:Unix,Windows。注意 此函数用于低级I / O,必须应用于由os.open()或返回的文件描述符pipe()。要编写由内置函数返回一个“文件对象” open()popen()fdopen()sys.stdoutsys.stderr,使用它的 write()方法。

15.1.3.1。open()标志常量

以下常量是函数的flags参数的 选项open()。它们可以使用按位OR运算符进行组合 |。其中一些并非在所有平台上都可用。有关其可用性和使用的说明,请参阅Unix上的open(2)手册页或Windows 上的MSDN

  • os.O_RDONLY

  • os.O_WRONLY

  • os.O_RDWR

  • os.O_APPEND

  • os.O_CREAT

  • os.O_EXCL

  • os.O_TRUNC

    上述常量可在Unix和Windows上使用。

  • os.O_DSYNC

  • os.O_RSYNC

  • os.O_SYNC

  • os.O_NDELAY

  • os.O_NONBLOCK

  • os.O_NOCTTY

    上述常量仅适用于Unix。

  • os.O_BINARY

  • os.O_NOINHERIT

  • os.O_SHORT_LIVED

  • os.O_TEMPORARY

  • os.O_RANDOM

  • os.O_SEQUENTIAL

  • os.O_TEXT

    以上常量仅适用于Windows。

  • os.O_ASYNC

  • os.O_DIRECT

  • os.O_DIRECTORY

  • os.O_NOFOLLOW

  • os.O_NOATIME

  • os.O_SHLOCK

  • os.O_EXLOCK

    上述常量是扩展,如果它们未由C库定义则不存在。

15.1.4。文件和目录

  • os.access路径模式

    使用真实的uid / gid来测试对路径的访问。请注意,大多数操作将使用有效的uid / gid,因此可以在suid / sgid环境中使用此例程来测试调用用户是否具有指定的路径访问权限 。 模式应该是F_OK来测试是否存在路径,或者它可以是包容性的OR的一种或多种的R_OKW_OKX_OK测试权限。True如果允许访问则返回, False否则返回。有关更多信息,请参见Unix手册页访问(2)。可用性:Unix,Windows。注意 使用access()来检查,如果用户被授权例如竟这样做使用前打开一个文件open()创建一个安全漏洞,因为用户可能会利用检查和打开操作它的文件之间的时间间隔短。最好使用EAFP 技术。例如:if os.access("myfile", os.R_OK): with open("myfile") as fp: return fp.read() return "some default data"写得更好:try: fp = open("myfile") except IOError as e: if e.errno == errno.EACCES: return "some default data" # Not a permission error. raise else: with fp: return fp.read()注意 即使access()表明它们会成功,I / O操作也可能失败,特别是对于可能具有超出通常POSIX权限位模型的权限语义的网络文件系统上的操作。

  • os.F_OK

    传递的值作为测试路径存在 的模式参数。access()

  • os.R_OK

    包含在模式参数中的值,access()用于测试路径的可读性。

  • os.W_OK

    包含在模式参数中的值,access()用于测试路径的可写性。

  • os.X_OK

    要包含在mode参数中的值,access()以确定是否 可以执行路径

  • os.chdir路径

    将当前工作目录更改为路径。可用性:Unix,Windows。

  • os.fchdirfd

    将当前工作目录更改为文件描述符fd表示的目录。描述符必须引用打开的目录,而不是打开的文件。可用性:Unix。版本2.3中的新功能。

  • os.getcwd()

    返回表示当前工作目录的字符串。可用性:Unix,Windows。

  • os.getcwdu()

    返回表示当前工作目录的Unicode对象。可用性:Unix,Windows。版本2.3中的新功能。

  • os.chflags路径旗帜

    路径标志设置为数字标志flags可以采用以下值的组合(按位OR)(如stat模块中所定义):stat.UF_NODUMPstat.UF_IMMUTABLEstat.UF_APPENDstat.UF_OPAQUEstat.UF_NOUNLINKstat.UF_COMPRESSEDstat.UF_HIDDENstat.SF_ARCHIVEDstat.SF_IMMUTABLEstat.SF_APPENDstat.SF_NOUNLINKstat.SF_SNAPSHOT可用性:Unix。2.6版中的新功能。

  • os.chroot路径

    将当前进程的根目录更改为path。可用性:Unix。2.2版中的新功能。

  • os.chmod路径模式

    路径模式更改为数字模式mode可以采用以下值之一(在stat模块中定义)或它们的按位ORed组合:stat.S_ISUIDstat.S_ISGIDstat.S_ENFMTstat.S_ISVTXstat.S_IREADstat.S_IWRITEstat.S_IEXECstat.S_IRWXUstat.S_IRUSRstat.S_IWUSRstat.S_IXUSRstat.S_IRWXGstat.S_IRGRPstat.S_IWGRPstat.S_IXGRPstat.S_IRWXOstat.S_IROTHstat.S_IWOTHstat.S_IXOTH可用性:Unix,Windows。注意 虽然Windows支持chmod(),但您只能使用它设置文件的只读标志(通过stat.S_IWRITEstat.S_IREAD 常量或相应的整数值)。所有其他位都被忽略。

  • os.chown路径uidgid

    路径的所有者和组ID更改为数字uidgid。要保持其中一个ID不变,请将其设置为-1。可用性:Unix。

  • os.lchflags路径旗帜

    设置的标志路径的数字标志,如chflags(),但不遵循符号链接。可用性:Unix。2.6版中的新功能。

  • os.lchmod路径模式

    路径模式更改为数字模式。如果path是符号链接,则会影响符号链接而不是目标。有关模式的chmod() 可能值,请参阅文档。可用性:Unix。2.6版中的新功能。

  • os.lchown路径uidgid

    路径的所有者和组ID更改为数字uidgid。此功能不会遵循符号链接。可用性:Unix。版本2.3中的新功能。

  • os.linksourcelink_name

    创建指向名为link_name的硬链接。可用性:Unix。

  • os.listdir路径

    返回一个列表,其中包含path给出的目录中的条目名称 。该列表按任意顺序排列。它不包括特殊条目'.''..'即使它们存在于目录中。可用性:Unix,Windows。在版本2.3中更改:在Windows NT / 2k / XP和Unix上,如果path是Unicode对象,则结果将是Unicode对象的列表。不可解码的文件名仍将作为字符串对象返回。

  • os.lstat路径

    lstat()在给定路径上执行等效的系统调用。类似于stat(),但不遵循符号链接。在不支持符号链接的平台上,这是一个别名 stat()

  • os.mkfifo路径[,模式] )

    使用数值模式模式创建名为path的FIFO(命名管道)。默认 模式是(八进制)。首先从模式中屏蔽当前的umask值。0666可用性:Unix。FIFO是可以像常规文件一样访问的管道。FIFO一直存在,直到它们被删除(例如os.unlink())。通常,FIFO用作“客户端”和“服务器”类型进程之间的会合:服务器打开FIFO进行读取,客户端打开它进行写入。请注意,mkfifo() 不会打开FIFO - 它只是创建会合点。

  • os.mknodfilename [,mode = 0600 [,device = 0 ] ] )

    创建名为filename的文件系统节点(文件,设备专用文件或命名管道) 。模式同时指定要使用的权限以及要创建的节点的类型,被组合(按位OR)与一个stat.S_IFREGstat.S_IFCHRstat.S_IFBLK,和stat.S_IFIFO(这些常数是在可用的stat)。对于stat.S_IFCHRstat.S_IFBLK设备定义新创建的设备专用文件(可能使用 os.makedev()),否则将被忽略。版本2.3中的新功能。

  • os.major设备

    从原始设备编号(通常是st_devst_rdev来自stat)中提取设备主编号 。版本2.3中的新功能。

  • os.minor设备

    从原始设备编号(通常是st_devst_rdev来自stat)中提取设备次编号 。版本2.3中的新功能。

  • os.makedev主要次要

    根据主设备号和次设备号编写原始设备号。版本2.3中的新功能。

  • os.mkdir路径[,模式] )

    使用数字模式模式创建名为path的目录。默认模式是 (八进制)。如果该目录已存在,则引发该目录 。0777osError在某些系统上,模式被忽略。在使用它的地方,首先屏蔽当前的umask值。如果设置了除最后9位之外的位(即模式的八进制表示的最后3位数),则它们的含义取决于平台。在某些平台上,它们会被忽略,您应该chmod()明确调用 它们来设置它们。也可以创建临时目录; 看 tempfile模块的tempfile.mkdtemp()功能。可用性:Unix,Windows。

  • os.makedirs路径[,模式] )

    递归目录创建功能。喜欢mkdir(),但是需要包含叶子目录的所有中间级目录。error如果leaf目录已存在或无法创建,则引发 异常。默认模式0777(八进制)。所述模式参数被传递给mkdir(); 请参阅mkdir()描述以了解它的解释方式。注意 makedirs()如果要创建的路径元素包含,将会变得混乱 os.pardir。*1.5.2版中的新功能。**版本2.3中已更改:*此函数现在可以正确处理UNC路径。

  • os.pathconf路径名称

    返回与指定文件相关的系统配置信息。name 指定要检索的配置值; 它可以是一个字符串,它是已定义系统值的名称; 这些名称在许多标准(POSIX.1,Unix 95,Unix 98和其他标准)中指定。一些平台也定义了其他名称。主机操作系统已知的名称在pathconf_names字典中给出。对于未包含在该映射中的配置变量,也接受传递name的整数。如果name是一个字符串而且未知,ValueError则引发。如果主机系统不支持name的特定值,即使它包含在内pathconf_namesosError也会引发 errno.EINVAL错误编号。可用性:Unix。

  • os.pathconf_names

    字典映射名称由主机操作系统为这些名称定义的整数值接受pathconf()和接受fpathconf()。这可用于确定系统已知的名称集。可用性:Unix。

  • os.readlink路径

    返回表示符号链接指向的路径的字符串。结果可以是绝对路径名或相对路径名; 如果它是相对的,则可以使用转换为绝对路径名。os.path.join(os.path.dirname(path), result)在2.6版中更改:如果路径是Unicode对象,则结果也将是Unicode对象。可用性:Unix。

  • os.remove路径

    删除(删除)文件路径。如果path是目录,osError则引发; 请参阅rmdir()下文以删除目录。这与unlink()下面记录的功能相同。在Windows上,尝试删除正在使用的文件会导致引发异常; 在Unix上,目录条目被删除,但分配给该文件的存储在原始文件不再使用之前不可用。可用性:Unix,Windows。

  • os.removedirs路径

    递归删除目录。工作方式类似rmdir(),只是,如果叶目录被成功移除,removedirs() 试图依次除去在所述的每父目录 路径直到产生一个错误(这将被忽略,因为它通常是指一个父目录不为空)。例如,os.removedirs('foo/bar/baz')首先删除目录'foo/bar/baz',然后删除它们'foo/bar''foo'如果它们是空的。osError如果无法成功删除叶目录,则引发此问题。1.5.2版中的新功能。

  • os.renamesrcdst

    将文件或目录src重命名为dst。如果dst是目录, osError则会引发。在Unix上,如果dst存在且是一个文件,如果用户有权限,它将被静默替换。如果srcdst在不同的文件系统上,则某些Unix风格的操作可能会失败。如果成功,重命名将是原子操作(这是POSIX要求)。在Windows上,如果dst已经存在,osError即使它是文件也会被引发; 当dst命名现有文件时,可能无法实现原子重命名。可用性:Unix,Windows。

  • os.renames旧的新的

    递归目录或文件重命名功能。就像rename(),除了创作,使新路径好首先尝试需要任何中间目录。在重命名之后,将使用旧的名称对应于最右边路径段的目录removedirs()1.5.2版中的新功能。注意 如果缺少删除叶子目录或文件所需的权限,则此函数可能会失败并显示新的目录结构。

  • os.rmdir路径

    删除(删除)目录路径。仅在目录为空时才起作用,否则osError引发。为了删除整个目录树,shutil.rmtree()可以使用。可用性:Unix,Windows。

  • os.stat路径

    stat()在给定路径上执行等效的系统调用。(此函数遵循符号链接;对stat使用符号链接lstat()。)返回值是一个对象,其属性对应于stat结构的成员,即:st_mode - 保护位,st_ino - inode编号,st_dev - 设备,st_nlink - 硬链接数量,st_uid - 所有者的用户ID,st_gid - 所有者的组ID,st_size - 文件大小,以字节为单位,st_atime - 最近访问的时间,st_mtime - 最近修改内容的时间,st_ctime - 平台依赖; Unix上最近元数据更改的时间,或Windows上创建的时间)在版本2.3中更改:如果stat_float_times()返回True,则时间值为浮点数,测量秒数。如果系统支持,则可以报告一秒的分数。请参阅stat_float_times()进一步讨论。在某些Unix系统(例如Linux)上,还可以使用以下属性:st_blocks - 为文件分配的512字节块数st_blksize - filesystem blocksize用于高效的文件系统I / O.st_rdev - inode设备的设备类型st_flags - 用户定义的文件标志在其他Unix系统(例如FreeBSD)上,可以使用以下属性(但只有在root尝试使用它们时才可填写):st_gen - 文件生成号st_birthtime - 文件创建时间在RISCOS系统上,还提供以下属性:st_ftype (文件类型)st_attrs (属性)st_obtype (对象类型)。注意 确切含义和分辨率st_atimest_mtime以及st_ctime属性取决于操作系统和文件系统上。例如,在使用FAT或FAT32文件系统的Windows系统上,st_mtime分辨率为2秒,并且 st_atime只有1天的分辨率。有关详细信息,请参阅操作系统文档为了向后兼容,的返回值stat()也为至少10点的整数给出的最重要的(便携式)成员的元组可访问的stat结构中,在顺序st_modest_inost_devst_nlinkst_uidst_gidst_sizest_atimest_mtimest_ctime。一些实现可以在最后添加更多项目。标准模块stat定义了用于从stat结构中提取信息的函数和常量。(在Windows上,某些项目填充了虚拟值。)例:>>> import os >>> statinfo = os.stat('somefile.txt') >>> statinfo (33188, 422511, 769, 1, 1032, 100, 926, 1105022698,1105022732, 1105022732) >>> statinfo.st_size 926可用性:Unix,Windows。在2.2版中更改:添加了对值作为返回对象的属性的访问权限。在版本2.5中更改:添加st_genst_birthtime

  • os.stat_float_times([ newvalue ] )

    确定是否stat_result将时间戳表示为浮动对象。如果NEWVALUETrue,将来调用stat()返回浮点数,如果是 False,将来调用返回整型。如果省略newvalue,则返回当前设置。为了与较旧的Python版本兼容,stat_result作为元组访问总是返回整数。在版本2.5中更改: Python现在默认返回浮点值。使用浮点时间戳无法正常工作的应用程序可以使用此功能来恢复旧行为。时间戳的分辨率(即可能的最小分数)取决于系统。有些系统仅支持第二种分辨率; 在这些系统上,分数始终为零。建议仅在程序启动时在main模块中更改此设置; 库永远不应该更改此设置。如果应用程序使用的库在处理浮点时间戳时工作不正确,则此应用程序应关闭该功能,直到库已更正为止。

  • os.statvfs路径

    statvfs()在给定路径上执行系统调用。返回值是一个对象,其属性描述了给定路径上的文件系统,并对应于成员statvfs结构,即: f_bsizef_frsizef_blocksf_bfreef_bavailf_filesf_ffreef_favailf_flagf_namemax。为了向后兼容,返回值也可以作为元组访问,其值与属性相对应,按上面给出的顺序。标准模块statvfs定义了在将statvfs结构作为序列访问时从结构中提取信息有用的常量; 在编写需要使用不支持将字段作为属性访问的Python版本的代码时,这仍然很有用。可用性:Unix。在2.2版中更改:添加了对值作为返回对象的属性的访问权限。

  • os.symlinksourcelink_name

    创建指向名为link_name的符号链接。可用性:Unix。

  • os.tempnam([ dir [,prefix ] ] )

    返回适合创建临时文件的唯一路径名。这将是一个绝对路径,它命名目录dir中的潜在目录条目或临时文件的公共位置(如果省略dir或) None。如果给出的不是None前缀是用来提供一个短前缀的文件名。应用程序负责正确创建和管理使用返回的路径创建的文件tempnam(); 没有提供自动清理。在Unix上,环境变量TMPDIR在Windows上 覆盖dirTMP用来。该函数的具体行为取决于C库的实现; 系统文档中未指定某些方面。警告 使用tempnam()易受符号链接攻击; 考虑使用 tmpfile()(部分文件对象创建)。可用性:Unix,Windows。

  • os.tmpnam()

    返回适合创建临时文件的唯一路径名。这将是一个绝对路径,用于命名临时文件的公共位置中的潜在目录条目。应用程序负责正确创建和管理使用返回的路径创建的文件tmpnam(); 没有提供自动清理。警告 使用tmpnam()易受符号链接攻击; 考虑使用 tmpfile()(部分文件对象创建)。可用性:Unix,Windows。但是这个功能可能不应该在Windows上使用:Microsoft的实现tmpnam()始终在当前驱动器的根目录中创建一个名称,而这通常是临时文件的不良位置(取决于权限,您甚至可能无法使用使用此名称打开文件)。

  • os.TMP_MAX

    tmpnam()重用名称之前将生成的唯一名称的最大数量。

  • os.unlink路径

    删除(删除)文件路径。这与功能相同 remove(); 这个unlink()名字是它的传统Unix名称。可用性:Unix,Windows。

  • os.utime路径时间

    设置path指定的文件的访问次数和修改次数。如果时间None,那么文件的访问和修改时间设置为当前时间。(效果类似于在路径上运行Unix程序触摸。)否则,时间必须是2元组的数字,分别用于设置访问和修改时间的形式 。是否可以为路径指定目录取决于操作系统是否将目录实现为文件(例如,Windows不实现)。请注意,您在此处设置的确切时间可能不会被后续返回(atime, mtime)stat()呼叫,具体取决于操作系统记录访问和修改时间的分辨率; 看stat()在2.0版中更改:添加了None时间的支持。可用性:Unix,Windows。

  • os.walktoptopdown = Trueonerror = Nonefollowlinks = False

    通过从上到下或从下到上遍历树来生成目录树中的文件名。对于以目录top(包括top本身)为根的树中的每个目录 ,它产生一个3元组。(dirpath, dirnames, filenames)dirpath是一个字符串,即目录的路径。 dirnames中是子目录的名称列表中的dirpath(不包括'.''..')。 filenamesdirpath中非目录文件的名称列表。请注意,列表中的名称不包含路径组件。要获取完整路径(以top开头)到dirpath中的文件或目录,请执行 。os.path.join(dirpath, name)如果可选参数自上而下True或没有指定,三重用于目录的三元组为任何子目录(目录生成自上而下)的之前产生。如果自上而下的False,其所有子目录的三元组(目录生成由下而上)后三的目录中生成。无论topdown的值如何,都会在生成目录及其子目录的元组之前检索子目录列表。当自上而下的True,来电者可以修改dirnames中就地列表(可能使用del或切片分配),并且walk()只会递归到他们的名字留在子目录dirnames中 ; 这可用于修剪搜索,强制执行特定的访问顺序,甚至可以walk()walk()再次恢复之前通知 调用者创建或重命名的目录 。修改dirnames中,当自上而下的就是False对行走的行为没有影响,因为在自下而上的模式在目录dirnames中被之前生成dirpath生成本身。默认情况下,listdir()将忽略来自调用的错误。如果指定了可选的参数onerror,它应该是一个函数; 它将使用一个参数,一个osError实例调用。它可以报告错误以继续walk,或者引发异常以中止walk。请注意,文件名可用作filename异常对象的属性。默认情况下,walk()不会向下走到解析为目录的符号链接。设置followlinksTrue访问符号链接指向的目录,在支持它们的系统上。新的2.6版:followlinks参数。注意 请注意,设置followlinksTrue可能导致无限递归如果一个链接指向其自身的父目录。walk()不跟踪它已经访问过的目录。注意 如果传递相对路径名,请不要在恢复之间更改当前工作目录walk()walk()永远不会更改当前目录,并假定其调用者也不会。此示例显示起始目录下每个目录中的非目录文件占用的字节数,但它不在任何CVS子目录下查看:import os from os.path import join, getsize for root, dirs, files in os.walk('python/Lib/email'): print root, "consumes", print sum(getsize(join(root, name)) for name in files), print "bytes in", len(files), "non-directory files" if 'CVS' in dirs: dirs.remove('CVS') # don't visit CVS directories在下一个示例中,从底部向上遍历树是必不可少的:rmdir() 在目录为空之前不允许删除目录:# Delete everything reachable from the directory named in "top", # assuming there are no symbolic links. # CAUTION: This is dangerous! For example, if top == '/', it # could delete all your disk files. import os for root, dirs, files in os.walk(top, topdown=False): for name in files: os.remove(os.path.join(root, name)) for name in dirs: os.rmdir(os.path.join(root, name))版本2.3中的新功能。

15.1.5。流程管理

这些功能可用于创建和管理流程。

各种exec*函数采用加载到进程中的新程序的参数列表。在每种情况下,这些参数中的第一个作为自己的名称传递给新程序,而不是作为用户在命令行上键入的参数。对于C程序员来说,这是argv[0] 传递给程序的main()。例如,只会在标准输出上打印; 似乎会被忽略。os.execv('/bin/echo', ['foo', 'bar'])``bar``foo

  • os.abort()

    SIGABRT为当前进程生成信号。在Unix上,默认行为是生成核心转储; 在Windows上,该进程立即返回退出代码3。请注意,调用此函数将不要求注册的Python的信号处理SIGABRTsignal.signal()。可用性:Unix,Windows。

  • os.execlpatharg0arg1...

  • os.execlepatharg0arg1...env

  • os.execlpfilearg0arg1...

  • os.execlpefilearg0arg1...env

  • os.execv路径args

  • os.execvepathargsenv

  • os.execvp文件args

  • os.execvpefileargsenv

    这些函数都执行一个新程序,取代当前进程; 他们不回来。在Unix上,新的可执行文件被加载到当前进程中,并且将具有与调用者相同的进程ID。错误将报告为 osError例外。当前流程立即被替换。打开文件对象和描述符不会被刷新,因此如果这些打开的文件上可能存在缓冲数据,则应在调用函数之前sys.stdout.flush()os.fsync()之前 刷新它们 exec*exec*函数的“l”和“v”变体在命令行参数的传递方式上有所不同。如果在编写代码时参数的数量是固定的,那么“l”变体可能是最容易使用的; 各个参数只是成为execl*() 函数的附加参数。当参数的数量是可变的时,“v”变体是好的,参数在列表或元组中作为args 参数传递。在任何一种情况下,子进程的参数都应该以正在运行的命令的名称开头,但不会强制执行。其中包括一个“P”附近的端部(所述变体execlp()execlpe()execvp(),和execvpe())将使用 PATH用于定位程序文件的环境变量。当环境被替换时(使用exec*e下一段中讨论的变体之一),新环境被用作PATH变量。其他变体,execl()execle()execv(),和execve(),不会使用PATH变量来定位可执行文件; path必须包含适当的绝对路径或相对路径。为execle()execlpe()execve(),和execvpe()(注意,在“e”的这些所有端),则ENV参数必须被用于定义新处理的环境变量(这些被用来代替当前进程的环境)的映射; 功能execl()execlp()execv(),以及execvp()所有会导致新进程继承当前进程的环境。可用性:Unix,Windows。

  • os._exitn

    退出状态为n的进程,不调用清理处理程序,刷新stdio缓冲区等。可用性:Unix,Windows。注意 退出的标准方法是sys.exit(n)_exit()通常只应在a之后的子进程中使用fork()

以下退出代码已定义并可与之一起使用_exit(),但不是必需的。这些通常用于用Python编写的系统程序,例如邮件服务器的外部命令传递程序。

注意

其中一些可能并非在所有Unix平台上都可用,因为存在一些变化。这些常量定义在底层平台定义的位置。

  • os.EX_OK

    退出代码表示没有发生错误。可用性:Unix。版本2.3中的新功能。

  • os.EX_USAGE

    退出代码意味着命令使用不正确,例如当给出错误的参数数量时。可用性:Unix。版本2.3中的新功能。

  • os.EX_DATAERR

    退出代码表示输入数据不正确。可用性:Unix。版本2.3中的新功能。

  • os.EX_NOINPUT

    退出代码表示输入文件不存在或不可读。可用性:Unix。版本2.3中的新功能。

  • os.EX_NOUSER

    退出代码表示指定的用户不存在。可用性:Unix。版本2.3中的新功能。

  • os.EX_NOHOST

    退出代码表示指定的主机不存在。可用性:Unix。版本2.3中的新功能。

  • os.EX_UNAVAILABLE

    退出代码表示所需服务不可用。可用性:Unix。版本2.3中的新功能。

  • os.EX_SOFTWARE

    退出代码表示检测到内部软件错误。可用性:Unix。版本2.3中的新功能。

  • os.EX_OSERR

    退出代码,表示检测到操作系统错误,例如无法分叉或创建管道。可用性:Unix。版本2.3中的新功能。

  • os.EX_OSFILE

    退出代码意味着某些系统文件不存在,无法打开或出现其他类型的错误。可用性:Unix。版本2.3中的新功能。

  • os.EX_CANTCREAT

    退出代码表示无法创建用户指定的输出文件。可用性:Unix。版本2.3中的新功能。

  • os.EX_IOERR

    退出代码,表示在某些文件上执行I / O时发生错误。可用性:Unix。版本2.3中的新功能。

  • os.EX_TEMPFAIL

    退出代码表示发生了临时故障。这表示可能不是真正的错误,例如在可重试操作期间无法进行的网络连接。可用性:Unix。版本2.3中的新功能。

  • os.EX_PROTOCOL

    退出代码,表示协议交换是非法的,无效的或不理解的。可用性:Unix。版本2.3中的新功能。

  • os.EX_NOPERM

    退出代码意味着没有足够的权限来执行操作(但不是用于文件系统问题)。可用性:Unix。版本2.3中的新功能。

  • os.EX_CONFIG

    退出代码意味着发生了某种配置错误。可用性:Unix。版本2.3中的新功能。

  • os.EX_NOTFOUND

    退出代码,意味着“找不到条目”。可用性:Unix。版本2.3中的新功能。

  • os.fork()

    叉子进程。返回0子项和子项中父项的进程ID。如果发生错误osError。请注意,从线程使用fork()时,某些平台(包括FreeBSD <= 6.3,Cygwin和OS / 2 EMX)都存在已知问题。警告 请参阅ssl使用带有fork()的SSL模块的应用程序。可用性:Unix。

  • os.forkpty()

    使用新的伪终端作为子控制终端,对子进程进行分叉。返回一对,其中PID是在孩子,家长新的子进程ID,并且FD是伪终端的主端的文件描述符。要获得更便携的方法,请使用该 模块。如果发生错误。(pid, fd)``0ptyosError可用性:Unix的一些风格。

  • os.killpidsig

    将信号sig发送到进程pid。主机平台上可用的特定信号的常量在signal模块中定义。Windows:signal.CTRL_C_EVENTsignal.CTRL_BREAK_EVENT信号是特殊信号,只能发送到共享一个公共控制台窗口的控制台进程,例如一些子进程。sig的任何其他值都将导致进程被TerminateProcess API无条件地终止,并且退出代码将被设置为sig。Windows版本kill()另外需要处理进程句柄。2.7版中的新功能: Windows支持

  • os.killpgpgidsig

    将信号sig发送到进程组pgid。可用性:Unix。版本2.3中的新功能。

  • os.nice增量

    增量添加到流程的“niceness”中。回归新的美好。可用性:Unix。

  • os.plockop

    将程序段锁定到内存中。op(定义于 <sys/lock.h>)的值确定锁定哪些段。可用性:Unix。

  • os.popen...

  • os.popen2...

  • os.popen3...

  • os.popen4...

    运行子进程,返回打开的通信管道。文件对象创建一节中描述了这些功能。

  • os.spawnl模式路径...

  • os.spawnle模式路径...env

  • os.spawnlp模式文件...

  • os.spawnlpe模式文件...env

  • os.spawnv模式路径args

  • os.spawnvemodepathargsenv

  • os.spawnvp模式文件args

  • os.spawnvpe模式文件argsenv

    在新进程中执行程序路径。(请注意,该subprocess模块提供了更强大的工具来生成新进程并检索其结果;使用该模块比使用这些函数更可取。请特别检查使用子进程 模块部分替换旧函数。)如果是modeP_NOWAIT,则此函数返回新进程的进程id; 如果模式P_WAIT,返回进程的退出代码是否能正常退出,或者-signal,其中信号是杀死进程的信号。在Windows上,进程ID实际上是进程句柄,因此可以与waitpid()函数一起使用。spawn*函数的“l”和“v”变体在命令行参数的传递方式上有所不同。如果在编写代码时参数的数量是固定的,那么“l”变体可能是最容易使用的; 各个参数只是成为spawnl*()函数的附加参数 。当参数的数量是可变的时,“v”变体是好的,参数在列表或元组中作为args参数传递。在任何一种情况下,子进程的参数必须以正在运行的命令的名称开头。其中包括一个第二“p”的附近的端部(所述变体spawnlp()spawnlpe()spawnvp(),和spawnvpe())将使用 PATH用于定位程序文件的环境变量。当环境被替换时(使用spawn*e下一段中讨论的变体之一),新环境被用作PATH变量。其他变体,spawnl()spawnle()spawnv(),和spawnve(),不会使用 PATH变量来定位可执行文件; path必须包含适当的绝对路径或相对路径。为spawnle()spawnlpe()spawnve(),和spawnvpe() (注意,在“E”这些所有端),则ENV参数必须被用于定义新处理的环境变量的映射(它们被用来代替当前进程的环境中); 功能 spawnl()spawnlp()spawnv(),以及spawnvp()所有会导致新进程继承当前进程的环境。请注意,env字典中的键和值必须是字符串; 无效的键或值将导致函数失败,返回值为127。例如,以下调用spawnlp()spawnvpe()等效:import os os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null') L = ['cp', 'index.html', '/dev/null'] os.spawnvpe(os.P_WAIT, 'cp', L, os.environ)可用性:Unix,Windows。 spawnlp()spawnlpe()spawnvp()spawnvpe()不是Windows上可用。 spawnle()并且 spawnve()在Windows上不是线程安全的; 我们建议您改用 subprocess模块。版本1.6中的新功能。

  • os.P_NOWAIT

  • os.P_NOWAITO

    函数族的mode参数的可能值spawn*。如果给出了这些值中的任何一个,spawn*()则在创建新进程后,函数将立即返回,并将进程ID作为返回值。可用性:Unix,Windows。版本1.6中的新功能。

  • os.P_WAIT

    函数族的mode参数的可能值spawn*。如果以模式给出,则spawn*()在新进程运行完成之前函数不会返回,并且将返回运行成功的进程的退出代码,或者-signal如果信号终止进程。可用性:Unix,Windows。版本1.6中的新功能。

  • os.P_DETACH

  • os.P_OVERLAY

    函数族的mode参数的可能值spawn*。这些比上面列出的便携性差。P_DETACH 类似于P_NOWAIT,但新进程与调用进程的控制台分离。如果P_OVERLAY使用,将替换当前进程; 该spawn*()功能不会返回。可用性:Windows。版本1.6中的新功能。

  • os.startfile路径[,操作] )

    使用其关联的应用程序启动文件。如果未指定操作,或者'open'这类似于在Windows资源管理器中双击该文件,或者将文件名作为参数提供给交互式命令shell中的 start命令:文件将以任何应用程序(如果有)的方式打开其扩展名已关联的。当给出另一个操作时,它必须是一个“命令动词”,它指定应该对文件做什么。微软文档常见动词 'print''edit'(要在文件中使用),以及'explore''find'(要在目录中使用)。startfile()启动关联的应用程序后立即返回。没有选项可以等待应用程序关闭,也无法检索应用程序的退出状态。该路径参数是相对于当前目录。如果要使用绝对路径,请确保第一个字符不是斜杠('/'); ShellExecute()如果是,底层的Win32 函数不起作用。使用此os.path.normpath()函数可确保为Win32正确编码路径。可用性:Windows。*2.0版中的新功能。**新版本2.5:*在*操作*参数。

  • os.system命令

    在子shell中执行命令(字符串)。这是通过调用标准C函数实现的system(),并具有相同的限制。sys.stdin对执行命令的环境不反映对等的更改。在Unix上,返回值是以指定格式编码的进程的退出状态wait()。请注意,POSIX没有指定C system()函数返回值的含义,因此Python函数的返回值是依赖于系统的。在Windows上,返回值是系统shell在运行命令后返回的值 ,由Windows环境变量给出COMSPEC:在 command.com系统(Windows 95,98和ME)上,这总是0; 在 cmd.exe系统(Windows NT,2000和XP)上,这是命令运行的退出状态; 在使用非本机shell的系统上,请参阅shell文档。该subprocess模块提供了更强大的工具来产生新流程并检索其结果; 使用该模块比使用此功能更可取。有关一些有用的配方,请参阅 文档中的“ 使用子过程模块替换旧函数”部分subprocess。可用性:Unix,Windows。

  • os.times()

    返回一个5元组的浮点数,表示累计(处理器或其他)时间,以秒为单位。这些项目包括:用户时间,系统时间,孩子的用户时间,孩子的系统时间,以及自上一个固定点以来经过的实际时间。请参阅Unix手册页 时间(2)或相应的Windows Platform API文档。在Windows上,只填充前两个项目,其他项目为零。可用性:Unix,Windows

  • os.wait()

    等待子进程完成,并返回一个包含其pid和退出状态指示的元组:一个16位数字,其低字节是杀死进程的信号编号,其高字节是退出状态(如果是信号)数字为零); 如果生成核心文件,则设置低字节的高位。可用性:Unix。

  • os.waitpidpidoptions

    该功能的细节在Unix和Windows上有所不同。在Unix上:等待进程id pid给出的子进程的完成,并返回一个包含其进程ID和退出状态指示的元组(编码为wait())。调用的语义受整数选项的值影响,该值应该0用于正常操作。如果pid大于0,则waitpid()请求该特定进程的状态信息。如果PID0,请求为任何孩子的当前进程的进程组中的地位。如果是pid-1,则该请求适用于当前进程的任何子进程。如果pid小于 -1,则为进程组中的任何进程请求状态-pidpid的绝对值)。osError当系统调用返回-1时,使用errno的值引发An 。在Windows上:等待进程句柄pid给出的进程完成,并返回包含pid的元组,并且其退出状态向左移动8位(移位使得函数的跨平台使用更容易)。一个PID小于或等于0已经在Windows上没有特殊的意义,并提出了一个例外。整数选项的值无效。pid可以引用其id已知的任何进程,不一定是子进程。spawn* 调用的函数P_NOWAIT返回适当的进程句柄。

  • os.wait3选项

    类似于waitpid(),除了没有给出进程id参数,并且返回包含子进程id,退出状态指示和资源使用信息的3元素元组。参考resourcegetrusage()有关资源使用信息的详细信息。option参数与提供给waitpid()和的 参数相同wait4()。可用性:Unix。版本2.5中的新功能。

  • os.wait4pidoptions

    类似于waitpid(),除了包含子进程ID的3元素元组,退出状态指示和资源使用信息。参考resourcegetrusage()有关资源使用信息的详细信息。参数wait4()与提供的参数相同waitpid()。可用性:Unix。版本2.5中的新功能。

  • os.WNOHANG

    waitpid()如果没有立即可用的子进程状态,则立即返回的选项。在这种情况下,函数返回。(0, 0)可用性:Unix。

  • os.WCONTINUED

    如果从上次报告其状态后的作业控制停止继续子进程,则此选项会导致报告子进程。可用性:一些Unix系统。版本2.3中的新功能。

  • os.WUNTRACED

    此选项会导致报告子进程,如果它们已停止,但它们的当前状态自停止后仍未报告。可用性:Unix。版本2.3中的新功能。

下面的函数采取一个过程状态代码作为返回的 system()wait()waitpid()作为一个参数。它们可用于确定过程的处置。

  • os.WCOREDUMP状态

    返回True如果进程产生核心转储,否则返回False。可用性:Unix。版本2.3中的新功能。

  • os.WIFCONTINUED状态

    返回True如果进程已经从作业控制停止持续,否则返回False。可用性:Unix。版本2.3中的新功能。

  • os.WIFSTOPPED状态

    返回True如果进程已经停止,否则返回 False。可用性:Unix。

  • os.WIFSIGNALED状态

    返回True如果进程因信号退出,否则返回 False。可用性:Unix。

  • os.WIFEXITED状态

    返回True如果进程使用退出出口(2)系统调用,否则返回False。可用性:Unix。

  • os.WEXITSTATUS状态

    如果WIFEXITED(status)为true,则将整数参数返回到 exit(2)系统调用。否则,返回值毫无意义。可用性:Unix。

  • os.WSTOPSIG状态

    返回导致进程停止的信号。可用性:Unix。

  • os.WTERMSIG状态

    返回导致进程退出的信号。可用性:Unix。

15.1.6。其他系统信息

  • os.confstr名字

    返回字符串值系统配置值。name指定要检索的配置值; 它可以是一个字符串,它是已定义系统值的名称; 这些名称在许多标准(POSIX,Unix 95,Unix 98和其他标准)中指定。一些平台也定义了其他名称。主机操作系统已知的名称作为confstr_names字典的键给出 。对于未包含在该映射中的配置变量,也接受传递name的整数。如果未定义name指定的配置值,None则返回。如果name是一个字符串而且未知,ValueError则引发。如果主机系统不支持name的特定值,即使它包含在内confstr_namesosError也会引发 errno.EINVAL错误编号。可用性:Unix

  • os.confstr_names

    接受的字典映射名称confstr()为主机操作系统为这些名称定义的整数值。这可用于确定系统已知的名称集。可用性:Unix。

  • os.getloadavg()

    返回在过去的1,5和15分钟内平均的系统运行队列中的进程数,osError如果无法获得负载平均值,则返回。可用性:Unix。版本2.3中的新功能。

  • os.sysconf名字

    返回整数值系统配置值。如果未定义name指定的配置值,-1则返回。关于name参数的注释也confstr()适用于此处; 提供有关已知名称信息的字典由下式给出sysconf_names。可用性:Unix。

  • os.sysconf_names

    接受的字典映射名称sysconf()为主机操作系统为这些名称定义的整数值。这可用于确定系统已知的名称集。可用性:Unix。

以下数据值用于支持路径操作操作。这些是为所有平台定义的。

os.path模块中定义了对路径名的更高级别操作。

  • os.curdir

    操作系统用于引用当前目录的常量字符串。这适用'.'于Windows和POSIX。也可通过 os.path

  • os.pardir

    操作系统用于引用父目录的常量字符串。这适用'..'于Windows和POSIX。也可通过 os.path

  • os.sep

    操作系统用于分隔路径名组件的字符。这适用'/'于POSIX和'\\'Windows。请注意,知道这不足以解析或连接路径名 - 使用 os.path.split()os.path.join()- 但它偶尔会有用。也可通过os.path

  • os.altsep

    操作系统用于分隔路径名组件的备用字符,或者None如果只存在一个分隔符。这'/'在Windows系统上设置为 sep反斜杠。也可通过 os.path

  • os.extsep

    将基本文件名与扩展名分开的字符; 例如,'.'in os.py。也可通过os.path2.2版中的新功能。

  • os.pathsep

    操作系统通常用于分隔搜索路径组件的字符(如 PATH),例如':'POSIX或';'Windows。也可通过os.path

  • os.defpath

    环境使用的默认搜索路径exec*p*以及 spawn*p*环境是否没有'PATH' 密钥。也可通过os.path

  • os.linesep

    用于分隔(或更确切地说,终止)当前平台上的行的字符串。这可以是单个字符,例如'\n'POSIX,也可以是多个字符,例如'\r\n'Windows。在编写以文本模式打开的文件时,不要将 os.linesep用作行终止符(默认值); '\n'在所有平台上使用单个。

  • os.devnull

    null设备的文件路径。例如:'/dev/null'对于POSIX,'nul'对于Windows。也可通过os.path版本2.4中的新功能。

15.1.7。杂项功能

  • os.urandomn

    返回一串适合加密使用的n个随机字节。此函数从特定于OS的随机源返回随机字节。对于加密应用程序,返回的数据应该是不可预测的,尽管其确切的质量取决于操作系统的实现。在类UNIX系统上,这将查询/dev/urandom,并在Windows上使用 CryptGenRandom()。如果找不到随机源, NotImplementedError则会引发。有关易于使用的平台提供的随机数生成器的界面,请参阅random.SystemRandom

本站文章基于国际协议BY-NA-SA 4.0协议共享;如未特殊说明,本站文章皆为原创文章,请规范转载。


0

‌ 如果够出色,却不能出头,至少也做到没第二个我。