2007-08-15 11:28:01 -03:00
|
|
|
:mod:`os` --- Miscellaneous operating system interfaces
|
|
|
|
=======================================================
|
|
|
|
|
|
|
|
.. module:: os
|
|
|
|
:synopsis: Miscellaneous operating system interfaces.
|
|
|
|
|
|
|
|
|
2008-01-12 06:53:29 -04:00
|
|
|
This module provides a portable way of using operating system dependent
|
|
|
|
functionality. If you just want to read or write a file see :func:`open`, if
|
|
|
|
you want to manipulate paths, see the :mod:`os.path` module, and if you want to
|
|
|
|
read all the lines in all the files on the command line see the :mod:`fileinput`
|
|
|
|
module. For creating temporary files and directories see the :mod:`tempfile`
|
|
|
|
module, and for high-level file and directory handling see the :mod:`shutil`
|
|
|
|
module.
|
|
|
|
|
2009-12-19 14:16:31 -04:00
|
|
|
Notes on the availability of these functions:
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2009-12-19 14:16:31 -04:00
|
|
|
* The design of all built-in operating system dependent modules of Python is
|
|
|
|
such that as long as the same functionality is available, it uses the same
|
|
|
|
interface; for example, the function ``os.stat(path)`` returns stat
|
|
|
|
information about *path* in the same format (which happens to have originated
|
|
|
|
with the POSIX interface).
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2009-12-19 14:16:31 -04:00
|
|
|
* Extensions peculiar to a particular operating system are also available
|
|
|
|
through the :mod:`os` module, but using them is of course a threat to
|
|
|
|
portability.
|
|
|
|
|
|
|
|
* An "Availability: Unix" note means that this function is commonly found on
|
|
|
|
Unix systems. It does not make any claims about its existence on a specific
|
|
|
|
operating system.
|
2008-09-13 14:41:16 -03:00
|
|
|
|
2009-12-19 14:16:31 -04:00
|
|
|
* If not separately noted, all functions that claim "Availability: Unix" are
|
|
|
|
supported on Mac OS X, which builds on a Unix core.
|
2008-09-13 14:41:16 -03:00
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
.. Availability notes get their own line and occur at the end of the function
|
|
|
|
.. documentation.
|
|
|
|
|
2008-01-12 06:53:29 -04:00
|
|
|
.. note::
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-01-12 06:53:29 -04:00
|
|
|
All functions in this module raise :exc:`OSError` in the case of invalid or
|
|
|
|
inaccessible file names and paths, or other arguments that have the correct
|
|
|
|
type, but are not accepted by the operating system.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. exception:: error
|
|
|
|
|
2008-01-12 06:53:29 -04:00
|
|
|
An alias for the built-in :exc:`OSError` exception.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. data:: name
|
|
|
|
|
2009-12-19 14:16:31 -04:00
|
|
|
The name of the operating system dependent module imported. The following
|
2010-05-05 16:09:31 -03:00
|
|
|
names have currently been registered: ``'posix'``, ``'nt'``,
|
2009-12-19 14:16:31 -04:00
|
|
|
``'os2'``, ``'ce'``, ``'java'``, ``'riscos'``.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2011-07-09 10:48:29 -03:00
|
|
|
.. seealso::
|
|
|
|
:attr:`sys.platform` has a finer granularity. :func:`os.uname` gives
|
|
|
|
system-dependent version information.
|
|
|
|
|
|
|
|
The :mod:`platform` module provides detailed checks for the
|
|
|
|
system's identity.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. _os-procinfo:
|
|
|
|
|
|
|
|
Process Parameters
|
|
|
|
------------------
|
|
|
|
|
|
|
|
These functions and data items provide information and operate on the current
|
|
|
|
process and user.
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: environ
|
|
|
|
|
2012-11-03 16:13:46 -03:00
|
|
|
A :term:`mapping` object representing the string environment. For example,
|
2007-08-15 11:28:01 -03:00
|
|
|
``environ['HOME']`` is the pathname of your home directory (on some platforms),
|
|
|
|
and is equivalent to ``getenv("HOME")`` in C.
|
|
|
|
|
|
|
|
This mapping is captured the first time the :mod:`os` module is imported,
|
|
|
|
typically during Python startup as part of processing :file:`site.py`. Changes
|
|
|
|
to the environment made after this time are not reflected in ``os.environ``,
|
|
|
|
except for changes made by modifying ``os.environ`` directly.
|
|
|
|
|
|
|
|
If the platform supports the :func:`putenv` function, this mapping may be used
|
|
|
|
to modify the environment as well as query the environment. :func:`putenv` will
|
|
|
|
be called automatically when the mapping is modified.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
Calling :func:`putenv` directly does not change ``os.environ``, so it's better
|
|
|
|
to modify ``os.environ``.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may
|
|
|
|
cause memory leaks. Refer to the system documentation for
|
2012-01-14 11:42:02 -04:00
|
|
|
:c:func:`putenv`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
If :func:`putenv` is not provided, a modified copy of this mapping may be
|
|
|
|
passed to the appropriate process-creation functions to cause child processes
|
|
|
|
to use a modified environment.
|
|
|
|
|
2007-09-20 14:57:59 -03:00
|
|
|
If the platform supports the :func:`unsetenv` function, you can delete items in
|
2007-08-15 11:28:01 -03:00
|
|
|
this mapping to unset environment variables. :func:`unsetenv` will be called
|
2007-09-20 14:57:59 -03:00
|
|
|
automatically when an item is deleted from ``os.environ``, and when
|
2007-10-24 18:40:38 -03:00
|
|
|
one of the :meth:`pop` or :meth:`clear` methods is called.
|
2007-09-20 14:57:59 -03:00
|
|
|
|
|
|
|
.. versionchanged:: 2.6
|
2007-10-24 18:40:38 -03:00
|
|
|
Also unset environment variables when calling :meth:`os.environ.clear`
|
|
|
|
and :meth:`os.environ.pop`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: chdir(path)
|
|
|
|
fchdir(fd)
|
|
|
|
getcwd()
|
|
|
|
:noindex:
|
|
|
|
|
|
|
|
These functions are described in :ref:`os-file-dir`.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: ctermid()
|
|
|
|
|
|
|
|
Return the filename corresponding to the controlling terminal of the process.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
Availability: Unix.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: getegid()
|
|
|
|
|
|
|
|
Return the effective group id of the current process. This corresponds to the
|
2010-05-06 19:49:28 -03:00
|
|
|
"set id" bit on the file being executed in the current process.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: geteuid()
|
|
|
|
|
|
|
|
.. index:: single: user; effective id
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Return the current process's effective user id.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: getgid()
|
|
|
|
|
|
|
|
.. index:: single: process; group
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Return the real group id of the current process.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: getgroups()
|
|
|
|
|
|
|
|
Return list of supplemental group ids associated with the current process.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
Availability: Unix.
|
|
|
|
|
2014-03-12 20:35:54 -03:00
|
|
|
.. note::
|
|
|
|
|
|
|
|
On Mac OS X, :func:`getgroups` behavior differs somewhat from
|
2012-04-30 15:13:16 -03:00
|
|
|
other Unix platforms. If the Python interpreter was built with a
|
|
|
|
deployment target of :const:`10.5` or earlier, :func:`getgroups` returns
|
|
|
|
the list of effective group ids associated with the current user process;
|
|
|
|
this list is limited to a system-defined number of entries, typically 16,
|
|
|
|
and may be modified by calls to :func:`setgroups` if suitably privileged.
|
|
|
|
If built with a deployment target greater than :const:`10.5`,
|
|
|
|
:func:`getgroups` returns the current group access list for the user
|
|
|
|
associated with the effective user id of the process; the group access
|
|
|
|
list may change over the lifetime of the process, it is not affected by
|
|
|
|
calls to :func:`setgroups`, and its length is not limited to 16. The
|
|
|
|
deployment target value, :const:`MACOSX_DEPLOYMENT_TARGET`, can be
|
|
|
|
obtained with :func:`sysconfig.get_config_var`.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2009-12-02 16:37:54 -04:00
|
|
|
.. function:: initgroups(username, gid)
|
|
|
|
|
|
|
|
Call the system initgroups() to initialize the group access list with all of
|
|
|
|
the groups of which the specified username is a member, plus the specified
|
2010-05-06 19:49:28 -03:00
|
|
|
group id.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2009-12-02 16:37:54 -04:00
|
|
|
|
|
|
|
.. versionadded:: 2.7
|
|
|
|
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
.. function:: getlogin()
|
|
|
|
|
|
|
|
Return the name of the user logged in on the controlling terminal of the
|
2014-08-30 22:04:15 -03:00
|
|
|
process. For most purposes, it is more useful to use the environment
|
|
|
|
variable :envvar:`LOGNAME` to find out who the user is, or
|
|
|
|
``pwd.getpwuid(os.getuid())[0]`` to get the login name of the process's real
|
|
|
|
user id.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: getpgid(pid)
|
|
|
|
|
|
|
|
Return the process group id of the process with process id *pid*. If *pid* is 0,
|
2010-05-06 19:49:28 -03:00
|
|
|
the process group id of the current process is returned.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: getpgrp()
|
|
|
|
|
|
|
|
.. index:: single: process; group
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Return the id of the current process group.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: getpid()
|
|
|
|
|
|
|
|
.. index:: single: process; id
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Return the current process id.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: getppid()
|
|
|
|
|
|
|
|
.. index:: single: process; id of parent
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Return the parent's process id.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2009-11-28 07:11:50 -04:00
|
|
|
|
2009-11-27 13:51:12 -04:00
|
|
|
.. function:: getresuid()
|
2009-11-27 09:56:01 -04:00
|
|
|
|
|
|
|
Return a tuple (ruid, euid, suid) denoting the current process's
|
2010-05-06 19:49:28 -03:00
|
|
|
real, effective, and saved user ids.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2009-11-27 09:56:01 -04:00
|
|
|
|
2009-11-28 07:11:50 -04:00
|
|
|
.. versionadded:: 2.7
|
|
|
|
|
2009-11-27 09:56:01 -04:00
|
|
|
|
2009-11-27 13:51:12 -04:00
|
|
|
.. function:: getresgid()
|
2009-11-27 09:56:01 -04:00
|
|
|
|
|
|
|
Return a tuple (rgid, egid, sgid) denoting the current process's
|
Merged revisions 82798,82805,83659,83977,84015,84018,84141,84264,84326-84327,84480,84482,84484,84530-84531,84553,84619,84915-84916 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r82798 | georg.brandl | 2010-07-11 11:23:11 +0200 (So, 11 Jul 2010) | 1 line
#6774: explain shutdown() behavior varying with platform.
........
r82805 | georg.brandl | 2010-07-11 11:42:10 +0200 (So, 11 Jul 2010) | 1 line
#7935: cross-reference to ast.literal_eval() from eval() docs.
........
r83659 | georg.brandl | 2010-08-03 14:06:29 +0200 (Di, 03 Aug 2010) | 1 line
Terminology fix: exceptions are raised, except in generator.throw().
........
r83977 | georg.brandl | 2010-08-13 17:10:49 +0200 (Fr, 13 Aug 2010) | 1 line
Fix copy-paste error.
........
r84015 | georg.brandl | 2010-08-14 17:44:34 +0200 (Sa, 14 Aug 2010) | 1 line
Add some maintainers.
........
r84018 | georg.brandl | 2010-08-14 17:48:49 +0200 (Sa, 14 Aug 2010) | 1 line
Typo fix.
........
r84141 | georg.brandl | 2010-08-17 16:11:59 +0200 (Di, 17 Aug 2010) | 1 line
Markup nits.
........
r84264 | georg.brandl | 2010-08-22 22:23:38 +0200 (So, 22 Aug 2010) | 1 line
#9649: fix default value description.
........
r84326 | georg.brandl | 2010-08-26 16:30:15 +0200 (Do, 26 Aug 2010) | 1 line
#9689: add links from overview to in-depth class API descriptions.
........
r84327 | georg.brandl | 2010-08-26 16:30:56 +0200 (Do, 26 Aug 2010) | 1 line
#9681: typo.
........
r84480 | georg.brandl | 2010-09-04 00:33:27 +0200 (Sa, 04 Sep 2010) | 1 line
More inclusive title.
........
r84482 | georg.brandl | 2010-09-04 00:40:02 +0200 (Sa, 04 Sep 2010) | 1 line
#9760: clarify what context expression is.
........
r84484 | georg.brandl | 2010-09-04 00:49:27 +0200 (Sa, 04 Sep 2010) | 1 line
Fix missing word.
........
r84530 | georg.brandl | 2010-09-05 19:07:12 +0200 (So, 05 Sep 2010) | 1 line
#9747: fix copy-paste error in getresgid() doc.
........
r84531 | georg.brandl | 2010-09-05 19:09:18 +0200 (So, 05 Sep 2010) | 1 line
#9776: fix some spacing.
........
r84553 | georg.brandl | 2010-09-06 08:49:07 +0200 (Mo, 06 Sep 2010) | 1 line
#9780: both { and } are not valid fill characters.
........
r84619 | georg.brandl | 2010-09-08 12:43:45 +0200 (Mi, 08 Sep 2010) | 1 line
Add Lukasz.
........
r84915 | georg.brandl | 2010-09-20 08:27:02 +0200 (Mo, 20 Sep 2010) | 1 line
Fix typo.
........
r84916 | georg.brandl | 2010-09-20 08:29:01 +0200 (Mo, 20 Sep 2010) | 1 line
Mention % as string formatting.
........
2010-10-06 06:28:45 -03:00
|
|
|
real, effective, and saved group ids.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
|
|
|
Availability: Unix.
|
2009-11-27 09:56:01 -04:00
|
|
|
|
2009-11-28 07:11:50 -04:00
|
|
|
.. versionadded:: 2.7
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. function:: getuid()
|
|
|
|
|
|
|
|
.. index:: single: user; id
|
|
|
|
|
2014-06-07 17:50:34 -03:00
|
|
|
Return the current process's real user id.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: getenv(varname[, value])
|
|
|
|
|
|
|
|
Return the value of the environment variable *varname* if it exists, or *value*
|
2010-05-06 19:49:28 -03:00
|
|
|
if it doesn't. *value* defaults to ``None``.
|
|
|
|
|
|
|
|
Availability: most flavors of Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: putenv(varname, value)
|
|
|
|
|
|
|
|
.. index:: single: environment variables; setting
|
|
|
|
|
|
|
|
Set the environment variable named *varname* to the string *value*. Such
|
|
|
|
changes to the environment affect subprocesses started with :func:`os.system`,
|
2010-05-06 19:49:28 -03:00
|
|
|
:func:`popen` or :func:`fork` and :func:`execv`.
|
|
|
|
|
|
|
|
Availability: most flavors of Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
On some platforms, including FreeBSD and Mac OS X, setting ``environ`` may
|
|
|
|
cause memory leaks. Refer to the system documentation for putenv.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
When :func:`putenv` is supported, assignments to items in ``os.environ`` are
|
|
|
|
automatically translated into corresponding calls to :func:`putenv`; however,
|
|
|
|
calls to :func:`putenv` don't update ``os.environ``, so it is actually
|
|
|
|
preferable to assign to items of ``os.environ``.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: setegid(egid)
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Set the current process's effective group id.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: seteuid(euid)
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Set the current process's effective user id.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: setgid(gid)
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Set the current process' group id.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: setgroups(groups)
|
|
|
|
|
|
|
|
Set the list of supplemental group ids associated with the current process to
|
|
|
|
*groups*. *groups* must be a sequence, and each element must be an integer
|
2008-01-05 15:44:22 -04:00
|
|
|
identifying a group. This operation is typically available only to the superuser.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
Availability: Unix.
|
|
|
|
|
|
|
|
.. versionadded:: 2.2
|
|
|
|
|
2012-04-30 15:13:16 -03:00
|
|
|
.. note:: On Mac OS X, the length of *groups* may not exceed the
|
|
|
|
system-defined maximum number of effective group ids, typically 16.
|
|
|
|
See the documentation for :func:`getgroups` for cases where it may not
|
|
|
|
return the same group list set by calling setgroups().
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. function:: setpgrp()
|
|
|
|
|
2012-01-14 11:42:02 -04:00
|
|
|
Call the system call :c:func:`setpgrp` or :c:func:`setpgrp(0, 0)` depending on
|
2007-08-15 11:28:01 -03:00
|
|
|
which version is implemented (if any). See the Unix manual for the semantics.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
Availability: Unix.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: setpgid(pid, pgrp)
|
|
|
|
|
2012-01-14 11:42:02 -04:00
|
|
|
Call the system call :c:func:`setpgid` to set the process group id of the
|
2007-08-15 11:28:01 -03:00
|
|
|
process with id *pid* to the process group with id *pgrp*. See the Unix manual
|
2010-05-06 19:49:28 -03:00
|
|
|
for the semantics.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
2009-11-27 09:56:01 -04:00
|
|
|
.. function:: setregid(rgid, egid)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Set the current process's real and effective group ids.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2009-11-28 07:11:50 -04:00
|
|
|
|
2009-11-27 09:56:01 -04:00
|
|
|
.. function:: setresgid(rgid, egid, sgid)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2009-11-27 09:56:01 -04:00
|
|
|
Set the current process's real, effective, and saved group ids.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2009-11-27 09:56:01 -04:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2009-11-28 07:11:50 -04:00
|
|
|
.. versionadded:: 2.7
|
|
|
|
|
2009-11-27 09:56:01 -04:00
|
|
|
|
|
|
|
.. function:: setresuid(ruid, euid, suid)
|
|
|
|
|
|
|
|
Set the current process's real, effective, and saved user ids.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2010-10-06 06:32:48 -03:00
|
|
|
Availability: Unix.
|
2009-11-27 09:56:01 -04:00
|
|
|
|
2009-11-28 07:11:50 -04:00
|
|
|
.. versionadded:: 2.7
|
|
|
|
|
2009-11-27 09:56:01 -04:00
|
|
|
|
|
|
|
.. function:: setreuid(ruid, euid)
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Set the current process's real and effective user ids.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: getsid(pid)
|
|
|
|
|
2012-01-14 11:42:02 -04:00
|
|
|
Call the system call :c:func:`getsid`. See the Unix manual for the semantics.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
Availability: Unix.
|
|
|
|
|
|
|
|
.. versionadded:: 2.4
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: setsid()
|
|
|
|
|
2012-01-14 11:42:02 -04:00
|
|
|
Call the system call :c:func:`setsid`. See the Unix manual for the semantics.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
Availability: Unix.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: setuid(uid)
|
|
|
|
|
|
|
|
.. index:: single: user; id, setting
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Set the current process's user id.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
2007-12-29 06:57:00 -04:00
|
|
|
.. placed in this section since it relates to errno.... a little weak
|
2007-08-15 11:28:01 -03:00
|
|
|
.. function:: strerror(code)
|
|
|
|
|
|
|
|
Return the error message corresponding to the error code in *code*.
|
2012-01-14 11:42:02 -04:00
|
|
|
On platforms where :c:func:`strerror` returns ``NULL`` when given an unknown
|
2010-05-06 19:49:28 -03:00
|
|
|
error number, :exc:`ValueError` is raised.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: umask(mask)
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Set the current numeric umask and return the previous umask.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: uname()
|
|
|
|
|
|
|
|
.. index::
|
|
|
|
single: gethostname() (in module socket)
|
|
|
|
single: gethostbyaddr() (in module socket)
|
|
|
|
|
|
|
|
Return a 5-tuple containing information identifying the current operating
|
|
|
|
system. The tuple contains 5 strings: ``(sysname, nodename, release, version,
|
|
|
|
machine)``. Some systems truncate the nodename to 8 characters or to the
|
|
|
|
leading component; a better way to get the hostname is
|
|
|
|
:func:`socket.gethostname` or even
|
2010-05-06 19:49:28 -03:00
|
|
|
``socket.gethostbyaddr(socket.gethostname())``.
|
|
|
|
|
|
|
|
Availability: recent flavors of Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: unsetenv(varname)
|
|
|
|
|
|
|
|
.. index:: single: environment variables; deleting
|
|
|
|
|
|
|
|
Unset (delete) the environment variable named *varname*. Such changes to the
|
|
|
|
environment affect subprocesses started with :func:`os.system`, :func:`popen` or
|
2010-05-06 19:49:28 -03:00
|
|
|
:func:`fork` and :func:`execv`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
When :func:`unsetenv` is supported, deletion of items in ``os.environ`` is
|
|
|
|
automatically translated into a corresponding call to :func:`unsetenv`; however,
|
|
|
|
calls to :func:`unsetenv` don't update ``os.environ``, so it is actually
|
|
|
|
preferable to delete items of ``os.environ``.
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Availability: most flavors of Unix, Windows.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. _os-newstreams:
|
|
|
|
|
|
|
|
File Object Creation
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
These functions create new file objects. (See also :func:`open`.)
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: fdopen(fd[, mode[, bufsize]])
|
|
|
|
|
|
|
|
.. index:: single: I/O control; buffering
|
|
|
|
|
|
|
|
Return an open file object connected to the file descriptor *fd*. The *mode*
|
2014-04-09 16:40:18 -03:00
|
|
|
and *bufsize* arguments have the same meaning as the corresponding arguments
|
|
|
|
to the built-in :func:`open` function. If :func:`fdopen` raises an
|
2014-04-14 20:45:46 -03:00
|
|
|
exception, it leaves *fd* untouched (unclosed).
|
2010-05-06 19:49:28 -03:00
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionchanged:: 2.3
|
|
|
|
When specified, the *mode* argument must now start with one of the letters
|
|
|
|
``'r'``, ``'w'``, or ``'a'``, otherwise a :exc:`ValueError` is raised.
|
|
|
|
|
|
|
|
.. versionchanged:: 2.5
|
|
|
|
On Unix, when the *mode* argument starts with ``'a'``, the *O_APPEND* flag is
|
2012-01-14 11:42:02 -04:00
|
|
|
set on the file descriptor (which the :c:func:`fdopen` implementation already
|
2007-08-15 11:28:01 -03:00
|
|
|
does on most platforms).
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: popen(command[, mode[, bufsize]])
|
|
|
|
|
|
|
|
Open a pipe to or from *command*. The return value is an open file object
|
|
|
|
connected to the pipe, which can be read or written depending on whether *mode*
|
|
|
|
is ``'r'`` (default) or ``'w'``. The *bufsize* argument has the same meaning as
|
|
|
|
the corresponding argument to the built-in :func:`open` function. The exit
|
|
|
|
status of the command (encoded in the format specified for :func:`wait`) is
|
2009-05-22 06:43:17 -03:00
|
|
|
available as the return value of the :meth:`~file.close` method of the file object,
|
2007-08-15 11:28:01 -03:00
|
|
|
except that when the exit status is zero (termination without errors), ``None``
|
2010-05-06 19:49:28 -03:00
|
|
|
is returned.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. deprecated:: 2.6
|
2009-01-03 16:55:06 -04:00
|
|
|
This function is obsolete. Use the :mod:`subprocess` module. Check
|
2008-06-22 06:05:29 -03:00
|
|
|
especially the :ref:`subprocess-replacements` section.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionchanged:: 2.0
|
|
|
|
This function worked unreliably under Windows in earlier versions of Python.
|
2012-01-14 11:42:02 -04:00
|
|
|
This was due to the use of the :c:func:`_popen` function from the libraries
|
2007-08-15 11:28:01 -03:00
|
|
|
provided with Windows. Newer versions of Python do not use the broken
|
|
|
|
implementation from the Windows libraries.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: tmpfile()
|
|
|
|
|
|
|
|
Return a new file object opened in update mode (``w+b``). The file has no
|
|
|
|
directory entries associated with it and will be automatically deleted once
|
2010-05-06 19:49:28 -03:00
|
|
|
there are no file descriptors for the file.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
There are a number of different :func:`popen\*` functions that provide slightly
|
|
|
|
different ways to create subprocesses.
|
|
|
|
|
|
|
|
.. deprecated:: 2.6
|
|
|
|
All of the :func:`popen\*` functions are obsolete. Use the :mod:`subprocess`
|
|
|
|
module.
|
|
|
|
|
|
|
|
For each of the :func:`popen\*` variants, if *bufsize* is specified, it
|
|
|
|
specifies the buffer size for the I/O pipes. *mode*, if provided, should be the
|
|
|
|
string ``'b'`` or ``'t'``; on Windows this is needed to determine whether the
|
|
|
|
file objects should be opened in binary or text mode. The default value for
|
|
|
|
*mode* is ``'t'``.
|
|
|
|
|
|
|
|
Also, for each of these variants, on Unix, *cmd* may be a sequence, in which
|
|
|
|
case arguments will be passed directly to the program without shell intervention
|
|
|
|
(as with :func:`os.spawnv`). If *cmd* is a string it will be passed to the shell
|
|
|
|
(as with :func:`os.system`).
|
|
|
|
|
|
|
|
These methods do not make it possible to retrieve the exit status from the child
|
|
|
|
processes. The only way to control the input and output streams and also
|
|
|
|
retrieve the return codes is to use the :mod:`subprocess` module; these are only
|
|
|
|
available on Unix.
|
|
|
|
|
|
|
|
For a discussion of possible deadlock conditions related to the use of these
|
|
|
|
functions, see :ref:`popen2-flow-control`.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: popen2(cmd[, mode[, bufsize]])
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Execute *cmd* as a sub-process and return the file objects ``(child_stdin,
|
2007-08-15 11:28:01 -03:00
|
|
|
child_stdout)``.
|
|
|
|
|
|
|
|
.. deprecated:: 2.6
|
2009-01-03 16:55:06 -04:00
|
|
|
This function is obsolete. Use the :mod:`subprocess` module. Check
|
2008-06-22 06:05:29 -03:00
|
|
|
especially the :ref:`subprocess-replacements` section.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: popen3(cmd[, mode[, bufsize]])
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Execute *cmd* as a sub-process and return the file objects ``(child_stdin,
|
2007-08-15 11:28:01 -03:00
|
|
|
child_stdout, child_stderr)``.
|
|
|
|
|
|
|
|
.. deprecated:: 2.6
|
2009-01-03 16:55:06 -04:00
|
|
|
This function is obsolete. Use the :mod:`subprocess` module. Check
|
2008-06-22 06:05:29 -03:00
|
|
|
especially the :ref:`subprocess-replacements` section.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: popen4(cmd[, mode[, bufsize]])
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Execute *cmd* as a sub-process and return the file objects ``(child_stdin,
|
2007-08-15 11:28:01 -03:00
|
|
|
child_stdout_and_stderr)``.
|
|
|
|
|
|
|
|
.. deprecated:: 2.6
|
2009-01-03 16:55:06 -04:00
|
|
|
This function is obsolete. Use the :mod:`subprocess` module. Check
|
2008-06-22 06:05:29 -03:00
|
|
|
especially the :ref:`subprocess-replacements` section.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
|
|
|
|
(Note that ``child_stdin, child_stdout, and child_stderr`` are named from the
|
|
|
|
point of view of the child process, so *child_stdin* is the child's standard
|
|
|
|
input.)
|
|
|
|
|
|
|
|
This functionality is also available in the :mod:`popen2` module using functions
|
|
|
|
of the same names, but the return values of those functions have a different
|
|
|
|
order.
|
|
|
|
|
|
|
|
|
|
|
|
.. _os-fd-ops:
|
|
|
|
|
|
|
|
File Descriptor Operations
|
|
|
|
--------------------------
|
|
|
|
|
|
|
|
These functions operate on I/O streams referenced using file descriptors.
|
|
|
|
|
|
|
|
File descriptors are small integers corresponding to a file that has been opened
|
|
|
|
by the current process. For example, standard input is usually file descriptor
|
|
|
|
0, standard output is 1, and standard error is 2. Further files opened by a
|
|
|
|
process will then be assigned 3, 4, 5, and so forth. The name "file descriptor"
|
|
|
|
is slightly deceptive; on Unix platforms, sockets and pipes are also referenced
|
|
|
|
by file descriptors.
|
|
|
|
|
2010-04-02 05:39:09 -03:00
|
|
|
The :meth:`~file.fileno` method can be used to obtain the file descriptor
|
|
|
|
associated with a file object when required. Note that using the file
|
|
|
|
descriptor directly will bypass the file object methods, ignoring aspects such
|
|
|
|
as internal buffering of data.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. function:: close(fd)
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Close file descriptor *fd*.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
This function is intended for low-level I/O and must be applied to a file
|
2009-05-22 06:43:17 -03:00
|
|
|
descriptor as returned by :func:`os.open` or :func:`pipe`. To close a "file
|
2007-08-15 11:28:01 -03:00
|
|
|
object" returned by the built-in function :func:`open` or by :func:`popen` or
|
2013-10-13 14:25:30 -03:00
|
|
|
:func:`fdopen`, use its :meth:`~io.IOBase.close` method.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
2008-01-19 16:22:13 -04:00
|
|
|
.. function:: closerange(fd_low, fd_high)
|
|
|
|
|
|
|
|
Close all file descriptors from *fd_low* (inclusive) to *fd_high* (exclusive),
|
2010-05-06 19:49:28 -03:00
|
|
|
ignoring errors. Equivalent to::
|
2008-01-19 16:22:13 -04:00
|
|
|
|
|
|
|
for fd in xrange(fd_low, fd_high):
|
|
|
|
try:
|
|
|
|
os.close(fd)
|
|
|
|
except OSError:
|
|
|
|
pass
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Availability: Unix, Windows.
|
|
|
|
|
2008-01-19 16:22:13 -04:00
|
|
|
.. versionadded:: 2.6
|
|
|
|
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
.. function:: dup(fd)
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Return a duplicate of file descriptor *fd*.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: dup2(fd, fd2)
|
|
|
|
|
|
|
|
Duplicate file descriptor *fd* to *fd2*, closing the latter first if necessary.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
2007-11-30 17:11:28 -04:00
|
|
|
.. function:: fchmod(fd, mode)
|
|
|
|
|
|
|
|
Change the mode of the file given by *fd* to the numeric *mode*. See the docs
|
2010-05-06 19:49:28 -03:00
|
|
|
for :func:`chmod` for possible values of *mode*.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-11-30 17:11:28 -04:00
|
|
|
|
2007-11-30 18:04:45 -04:00
|
|
|
.. versionadded:: 2.6
|
|
|
|
|
2007-11-30 17:11:28 -04:00
|
|
|
|
|
|
|
.. function:: fchown(fd, uid, gid)
|
|
|
|
|
|
|
|
Change the owner and group id of the file given by *fd* to the numeric *uid*
|
|
|
|
and *gid*. To leave one of the ids unchanged, set it to -1.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2007-11-30 17:11:28 -04:00
|
|
|
Availability: Unix.
|
|
|
|
|
2007-11-30 18:04:45 -04:00
|
|
|
.. versionadded:: 2.6
|
|
|
|
|
2007-11-30 17:11:28 -04:00
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
.. function:: fdatasync(fd)
|
|
|
|
|
|
|
|
Force write of file with filedescriptor *fd* to disk. Does not force update of
|
2010-05-06 19:49:28 -03:00
|
|
|
metadata.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2009-05-30 00:10:52 -03:00
|
|
|
.. note::
|
|
|
|
This function is not available on MacOS.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. function:: fpathconf(fd, name)
|
|
|
|
|
|
|
|
Return system configuration information relevant to an open file. *name*
|
|
|
|
specifies the configuration value to retrieve; it may be a string which is the
|
|
|
|
name of a defined system value; these names are specified in a number of
|
|
|
|
standards (POSIX.1, Unix 95, Unix 98, and others). Some platforms define
|
|
|
|
additional names as well. The names known to the host operating system are
|
|
|
|
given in the ``pathconf_names`` dictionary. For configuration variables not
|
|
|
|
included in that mapping, passing an integer for *name* is also accepted.
|
|
|
|
|
|
|
|
If *name* is a string and is not known, :exc:`ValueError` is raised. If a
|
|
|
|
specific value for *name* is not supported by the host system, even if it is
|
|
|
|
included in ``pathconf_names``, an :exc:`OSError` is raised with
|
|
|
|
:const:`errno.EINVAL` for the error number.
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Availability: Unix.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. function:: fstat(fd)
|
|
|
|
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
Return status for file descriptor *fd*, like :func:`~os.stat`.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: fstatvfs(fd)
|
|
|
|
|
|
|
|
Return information about the filesystem containing the file associated with file
|
2010-05-06 19:49:28 -03:00
|
|
|
descriptor *fd*, like :func:`statvfs`.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: fsync(fd)
|
|
|
|
|
|
|
|
Force write of file with filedescriptor *fd* to disk. On Unix, this calls the
|
2012-01-14 11:42:02 -04:00
|
|
|
native :c:func:`fsync` function; on Windows, the MS :c:func:`_commit` function.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
If you're starting with a Python file object *f*, first do ``f.flush()``, and
|
|
|
|
then do ``os.fsync(f.fileno())``, to ensure that all internal buffers associated
|
2010-05-06 19:49:28 -03:00
|
|
|
with *f* are written to disk.
|
|
|
|
|
|
|
|
Availability: Unix, and Windows starting in 2.2.3.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: ftruncate(fd, length)
|
|
|
|
|
|
|
|
Truncate the file corresponding to file descriptor *fd*, so that it is at most
|
2010-05-06 19:49:28 -03:00
|
|
|
*length* bytes in size.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: isatty(fd)
|
|
|
|
|
|
|
|
Return ``True`` if the file descriptor *fd* is open and connected to a
|
2010-05-06 19:49:28 -03:00
|
|
|
tty(-like) device, else ``False``.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. function:: lseek(fd, pos, how)
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Set the current position of file descriptor *fd* to position *pos*, modified
|
|
|
|
by *how*: :const:`SEEK_SET` or ``0`` to set the position relative to the
|
|
|
|
beginning of the file; :const:`SEEK_CUR` or ``1`` to set it relative to the
|
2013-10-13 14:25:30 -03:00
|
|
|
current position; :const:`SEEK_END` or ``2`` to set it relative to the end of
|
2014-03-11 06:28:56 -03:00
|
|
|
the file. Return the new cursor position in bytes, starting from the beginning.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
2010-04-14 10:50:31 -03:00
|
|
|
.. data:: SEEK_SET
|
|
|
|
SEEK_CUR
|
|
|
|
SEEK_END
|
|
|
|
|
|
|
|
Parameters to the :func:`lseek` function. Their values are 0, 1, and 2,
|
2010-05-06 19:49:28 -03:00
|
|
|
respectively.
|
|
|
|
|
|
|
|
Availability: Windows, Unix.
|
2010-04-14 10:50:31 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.5
|
|
|
|
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
.. function:: open(file, flags[, mode])
|
|
|
|
|
|
|
|
Open the file *file* and set various flags according to *flags* and possibly its
|
|
|
|
mode according to *mode*. The default *mode* is ``0777`` (octal), and the
|
|
|
|
current umask value is first masked out. Return the file descriptor for the
|
2010-05-06 19:49:28 -03:00
|
|
|
newly opened file.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
For a description of the flag and mode values, see the C run-time documentation;
|
|
|
|
flag constants (like :const:`O_RDONLY` and :const:`O_WRONLY`) are defined in
|
2010-04-14 16:16:38 -03:00
|
|
|
this module too (see :ref:`open-constants`). In particular, on Windows adding
|
|
|
|
:const:`O_BINARY` is needed to open files in binary mode.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Availability: Unix, Windows.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
.. note::
|
|
|
|
|
2009-07-26 11:19:57 -03:00
|
|
|
This function is intended for low-level I/O. For normal usage, use the
|
|
|
|
built-in function :func:`open`, which returns a "file object" with
|
2010-07-13 12:08:30 -03:00
|
|
|
:meth:`~file.read` and :meth:`~file.write` methods (and many more). To
|
2009-07-26 11:19:57 -03:00
|
|
|
wrap a file descriptor in a "file object", use :func:`fdopen`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: openpty()
|
|
|
|
|
|
|
|
.. index:: module: pty
|
|
|
|
|
|
|
|
Open a new pseudo-terminal pair. Return a pair of file descriptors ``(master,
|
|
|
|
slave)`` for the pty and the tty, respectively. For a (slightly) more portable
|
2010-05-06 19:49:28 -03:00
|
|
|
approach, use the :mod:`pty` module.
|
|
|
|
|
|
|
|
Availability: some flavors of Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: pipe()
|
|
|
|
|
|
|
|
Create a pipe. Return a pair of file descriptors ``(r, w)`` usable for reading
|
2010-05-06 19:49:28 -03:00
|
|
|
and writing, respectively.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: read(fd, n)
|
|
|
|
|
|
|
|
Read at most *n* bytes from file descriptor *fd*. Return a string containing the
|
|
|
|
bytes read. If the end of the file referred to by *fd* has been reached, an
|
2010-05-06 19:49:28 -03:00
|
|
|
empty string is returned.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
This function is intended for low-level I/O and must be applied to a file
|
2009-05-22 06:43:17 -03:00
|
|
|
descriptor as returned by :func:`os.open` or :func:`pipe`. To read a "file object"
|
2007-08-15 11:28:01 -03:00
|
|
|
returned by the built-in function :func:`open` or by :func:`popen` or
|
2009-05-22 06:43:17 -03:00
|
|
|
:func:`fdopen`, or :data:`sys.stdin`, use its :meth:`~file.read` or
|
|
|
|
:meth:`~file.readline` methods.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: tcgetpgrp(fd)
|
|
|
|
|
|
|
|
Return the process group associated with the terminal given by *fd* (an open
|
2010-05-06 19:49:28 -03:00
|
|
|
file descriptor as returned by :func:`os.open`).
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: tcsetpgrp(fd, pg)
|
|
|
|
|
|
|
|
Set the process group associated with the terminal given by *fd* (an open file
|
2010-05-06 19:49:28 -03:00
|
|
|
descriptor as returned by :func:`os.open`) to *pg*.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: ttyname(fd)
|
|
|
|
|
|
|
|
Return a string which specifies the terminal device associated with
|
2007-10-21 07:46:24 -03:00
|
|
|
file descriptor *fd*. If *fd* is not associated with a terminal device, an
|
2010-05-06 19:49:28 -03:00
|
|
|
exception is raised.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: write(fd, str)
|
|
|
|
|
|
|
|
Write the string *str* to file descriptor *fd*. Return the number of bytes
|
2010-05-06 19:49:28 -03:00
|
|
|
actually written.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
This function is intended for low-level I/O and must be applied to a file
|
2009-05-22 06:43:17 -03:00
|
|
|
descriptor as returned by :func:`os.open` or :func:`pipe`. To write a "file
|
2007-08-15 11:28:01 -03:00
|
|
|
object" returned by the built-in function :func:`open` or by :func:`popen` or
|
2009-05-22 06:43:17 -03:00
|
|
|
:func:`fdopen`, or :data:`sys.stdout` or :data:`sys.stderr`, use its
|
|
|
|
:meth:`~file.write` method.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-14 10:50:31 -03:00
|
|
|
|
|
|
|
.. _open-constants:
|
|
|
|
|
|
|
|
``open()`` flag constants
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
2008-12-05 04:02:17 -04:00
|
|
|
The following constants are options for the *flags* parameter to the
|
2009-05-22 06:43:17 -03:00
|
|
|
:func:`~os.open` function. They can be combined using the bitwise OR operator
|
2008-12-05 04:02:17 -04:00
|
|
|
``|``. Some of them are not available on all platforms. For descriptions of
|
2008-12-05 05:25:32 -04:00
|
|
|
their availability and use, consult the :manpage:`open(2)` manual page on Unix
|
2009-09-20 17:44:13 -03:00
|
|
|
or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. data:: O_RDONLY
|
|
|
|
O_WRONLY
|
|
|
|
O_RDWR
|
|
|
|
O_APPEND
|
|
|
|
O_CREAT
|
|
|
|
O_EXCL
|
|
|
|
O_TRUNC
|
|
|
|
|
2008-12-05 04:02:17 -04:00
|
|
|
These constants are available on Unix and Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. data:: O_DSYNC
|
|
|
|
O_RSYNC
|
|
|
|
O_SYNC
|
|
|
|
O_NDELAY
|
|
|
|
O_NONBLOCK
|
|
|
|
O_NOCTTY
|
|
|
|
O_SHLOCK
|
|
|
|
O_EXLOCK
|
|
|
|
|
2008-12-05 04:02:17 -04:00
|
|
|
These constants are only available on Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. data:: O_BINARY
|
2007-11-24 09:56:09 -04:00
|
|
|
O_NOINHERIT
|
2007-08-15 11:28:01 -03:00
|
|
|
O_SHORT_LIVED
|
|
|
|
O_TEMPORARY
|
|
|
|
O_RANDOM
|
|
|
|
O_SEQUENTIAL
|
|
|
|
O_TEXT
|
|
|
|
|
2008-12-05 04:02:17 -04:00
|
|
|
These constants are only available on Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
2008-05-16 10:41:26 -03:00
|
|
|
.. data:: O_ASYNC
|
|
|
|
O_DIRECT
|
2007-11-24 09:56:09 -04:00
|
|
|
O_DIRECTORY
|
|
|
|
O_NOFOLLOW
|
|
|
|
O_NOATIME
|
|
|
|
|
2008-12-05 04:02:17 -04:00
|
|
|
These constants are GNU extensions and not present if they are not defined by
|
|
|
|
the C library.
|
2007-11-24 09:56:09 -04:00
|
|
|
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
.. _os-file-dir:
|
|
|
|
|
|
|
|
Files and Directories
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
.. function:: access(path, mode)
|
|
|
|
|
|
|
|
Use the real uid/gid to test for access to *path*. Note that most operations
|
|
|
|
will use the effective uid/gid, therefore this routine can be used in a
|
|
|
|
suid/sgid environment to test if the invoking user has the specified access to
|
|
|
|
*path*. *mode* should be :const:`F_OK` to test the existence of *path*, or it
|
|
|
|
can be the inclusive OR of one or more of :const:`R_OK`, :const:`W_OK`, and
|
|
|
|
:const:`X_OK` to test permissions. Return :const:`True` if access is allowed,
|
|
|
|
:const:`False` if not. See the Unix man page :manpage:`access(2)` for more
|
2010-05-06 19:49:28 -03:00
|
|
|
information.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
2009-07-26 11:19:57 -03:00
|
|
|
Using :func:`access` to check if a user is authorized to e.g. open a file
|
|
|
|
before actually doing so using :func:`open` creates a security hole,
|
|
|
|
because the user might exploit the short time interval between checking
|
2011-05-20 13:41:13 -03:00
|
|
|
and opening the file to manipulate it. It's preferable to use :term:`EAFP`
|
|
|
|
techniques. For example::
|
|
|
|
|
|
|
|
if os.access("myfile", os.R_OK):
|
|
|
|
with open("myfile") as fp:
|
|
|
|
return fp.read()
|
|
|
|
return "some default data"
|
|
|
|
|
|
|
|
is better written as::
|
|
|
|
|
|
|
|
try:
|
|
|
|
fp = open("myfile")
|
2011-05-20 13:49:06 -03:00
|
|
|
except IOError as e:
|
2011-10-20 13:49:29 -03:00
|
|
|
if e.errno == errno.EACCES:
|
2011-05-20 13:41:13 -03:00
|
|
|
return "some default data"
|
|
|
|
# Not a permission error.
|
|
|
|
raise
|
|
|
|
else:
|
|
|
|
with fp:
|
|
|
|
return fp.read()
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
I/O operations may fail even when :func:`access` indicates that they would
|
|
|
|
succeed, particularly for operations on network filesystems which may have
|
|
|
|
permissions semantics beyond the usual POSIX permission-bit model.
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: F_OK
|
|
|
|
|
|
|
|
Value to pass as the *mode* parameter of :func:`access` to test the existence of
|
|
|
|
*path*.
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: R_OK
|
|
|
|
|
|
|
|
Value to include in the *mode* parameter of :func:`access` to test the
|
|
|
|
readability of *path*.
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: W_OK
|
|
|
|
|
|
|
|
Value to include in the *mode* parameter of :func:`access` to test the
|
|
|
|
writability of *path*.
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: X_OK
|
|
|
|
|
|
|
|
Value to include in the *mode* parameter of :func:`access` to determine if
|
|
|
|
*path* can be executed.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: chdir(path)
|
|
|
|
|
|
|
|
.. index:: single: directory; changing
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Change the current working directory to *path*.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: fchdir(fd)
|
|
|
|
|
|
|
|
Change the current working directory to the directory represented by the file
|
|
|
|
descriptor *fd*. The descriptor must refer to an opened directory, not an open
|
2010-05-06 19:49:28 -03:00
|
|
|
file.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: getcwd()
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Return a string representing the current working directory.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: getcwdu()
|
|
|
|
|
|
|
|
Return a Unicode object representing the current working directory.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: chflags(path, flags)
|
|
|
|
|
|
|
|
Set the flags of *path* to the numeric *flags*. *flags* may take a combination
|
|
|
|
(bitwise OR) of the following values (as defined in the :mod:`stat` module):
|
|
|
|
|
2011-03-10 18:57:35 -04:00
|
|
|
* :data:`stat.UF_NODUMP`
|
|
|
|
* :data:`stat.UF_IMMUTABLE`
|
|
|
|
* :data:`stat.UF_APPEND`
|
|
|
|
* :data:`stat.UF_OPAQUE`
|
|
|
|
* :data:`stat.UF_NOUNLINK`
|
2011-06-28 03:41:53 -03:00
|
|
|
* :data:`stat.UF_COMPRESSED`
|
|
|
|
* :data:`stat.UF_HIDDEN`
|
2011-03-10 18:57:35 -04:00
|
|
|
* :data:`stat.SF_ARCHIVED`
|
|
|
|
* :data:`stat.SF_IMMUTABLE`
|
|
|
|
* :data:`stat.SF_APPEND`
|
|
|
|
* :data:`stat.SF_NOUNLINK`
|
|
|
|
* :data:`stat.SF_SNAPSHOT`
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.6
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: chroot(path)
|
|
|
|
|
|
|
|
Change the root directory of the current process to *path*. Availability:
|
2008-09-13 14:41:16 -03:00
|
|
|
Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.2
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: chmod(path, mode)
|
|
|
|
|
|
|
|
Change the mode of *path* to the numeric *mode*. *mode* may take one of the
|
2008-01-05 15:44:22 -04:00
|
|
|
following values (as defined in the :mod:`stat` module) or bitwise ORed
|
2007-08-15 11:28:01 -03:00
|
|
|
combinations of them:
|
|
|
|
|
|
|
|
|
2009-07-02 15:19:20 -03:00
|
|
|
* :data:`stat.S_ISUID`
|
|
|
|
* :data:`stat.S_ISGID`
|
|
|
|
* :data:`stat.S_ENFMT`
|
|
|
|
* :data:`stat.S_ISVTX`
|
|
|
|
* :data:`stat.S_IREAD`
|
|
|
|
* :data:`stat.S_IWRITE`
|
|
|
|
* :data:`stat.S_IEXEC`
|
|
|
|
* :data:`stat.S_IRWXU`
|
|
|
|
* :data:`stat.S_IRUSR`
|
|
|
|
* :data:`stat.S_IWUSR`
|
|
|
|
* :data:`stat.S_IXUSR`
|
|
|
|
* :data:`stat.S_IRWXG`
|
|
|
|
* :data:`stat.S_IRGRP`
|
|
|
|
* :data:`stat.S_IWGRP`
|
|
|
|
* :data:`stat.S_IXGRP`
|
|
|
|
* :data:`stat.S_IRWXO`
|
|
|
|
* :data:`stat.S_IROTH`
|
|
|
|
* :data:`stat.S_IWOTH`
|
|
|
|
* :data:`stat.S_IXOTH`
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
Although Windows supports :func:`chmod`, you can only set the file's read-only
|
|
|
|
flag with it (via the ``stat.S_IWRITE`` and ``stat.S_IREAD``
|
|
|
|
constants or a corresponding integer value). All other bits are
|
|
|
|
ignored.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: chown(path, uid, gid)
|
|
|
|
|
|
|
|
Change the owner and group id of *path* to the numeric *uid* and *gid*. To leave
|
2010-05-06 19:49:28 -03:00
|
|
|
one of the ids unchanged, set it to -1.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: lchflags(path, flags)
|
|
|
|
|
|
|
|
Set the flags of *path* to the numeric *flags*, like :func:`chflags`, but do not
|
2010-05-06 19:49:28 -03:00
|
|
|
follow symbolic links.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.6
|
2007-11-30 18:04:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: lchmod(path, mode)
|
|
|
|
|
|
|
|
Change the mode of *path* to the numeric *mode*. If path is a symlink, this
|
|
|
|
affects the symlink rather than the target. See the docs for :func:`chmod`
|
2010-05-06 19:49:28 -03:00
|
|
|
for possible values of *mode*.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-11-30 18:04:45 -04:00
|
|
|
|
|
|
|
.. versionadded:: 2.6
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: lchown(path, uid, gid)
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Change the owner and group id of *path* to the numeric *uid* and *gid*. This
|
2010-05-06 19:49:28 -03:00
|
|
|
function will not follow symbolic links.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
2009-03-28 16:16:10 -03:00
|
|
|
.. function:: link(source, link_name)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Create a hard link pointing to *source* named *link_name*.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: listdir(path)
|
|
|
|
|
2008-11-24 15:56:47 -04:00
|
|
|
Return a list containing the names of the entries in the directory given by
|
|
|
|
*path*. The list is in arbitrary order. It does not include the special
|
|
|
|
entries ``'.'`` and ``'..'`` even if they are present in the
|
2010-05-06 19:49:28 -03:00
|
|
|
directory.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionchanged:: 2.3
|
|
|
|
On Windows NT/2k/XP and Unix, if *path* is a Unicode object, the result will be
|
2009-05-16 08:21:29 -03:00
|
|
|
a list of Unicode objects. Undecodable filenames will still be returned as
|
|
|
|
string objects.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: lstat(path)
|
|
|
|
|
2012-01-14 11:42:02 -04:00
|
|
|
Perform the equivalent of an :c:func:`lstat` system call on the given path.
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
Similar to :func:`~os.stat`, but does not follow symbolic links. On
|
|
|
|
platforms that do not support symbolic links, this is an alias for
|
|
|
|
:func:`~os.stat`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: mkfifo(path[, mode])
|
|
|
|
|
|
|
|
Create a FIFO (a named pipe) named *path* with numeric mode *mode*. The default
|
|
|
|
*mode* is ``0666`` (octal). The current umask value is first masked out from
|
2010-05-06 19:49:28 -03:00
|
|
|
the mode.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
FIFOs are pipes that can be accessed like regular files. FIFOs exist until they
|
|
|
|
are deleted (for example with :func:`os.unlink`). Generally, FIFOs are used as
|
|
|
|
rendezvous between "client" and "server" type processes: the server opens the
|
|
|
|
FIFO for reading, and the client opens it for writing. Note that :func:`mkfifo`
|
|
|
|
doesn't open the FIFO --- it just creates the rendezvous point.
|
|
|
|
|
|
|
|
|
2012-05-22 10:22:14 -03:00
|
|
|
.. function:: mknod(filename[, mode=0600[, device=0]])
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
Create a filesystem node (file, device special file or named pipe) named
|
|
|
|
*filename*. *mode* specifies both the permissions to use and the type of node to
|
|
|
|
be created, being combined (bitwise OR) with one of ``stat.S_IFREG``,
|
|
|
|
``stat.S_IFCHR``, ``stat.S_IFBLK``,
|
|
|
|
and ``stat.S_IFIFO`` (those constants are available in :mod:`stat`).
|
|
|
|
For ``stat.S_IFCHR`` and
|
|
|
|
``stat.S_IFBLK``, *device* defines the newly created device special file (probably using
|
|
|
|
:func:`os.makedev`), otherwise it is ignored.
|
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: major(device)
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Extract the device major number from a raw device number (usually the
|
2012-01-14 11:42:02 -04:00
|
|
|
:attr:`st_dev` or :attr:`st_rdev` field from :c:type:`stat`).
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: minor(device)
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Extract the device minor number from a raw device number (usually the
|
2012-01-14 11:42:02 -04:00
|
|
|
:attr:`st_dev` or :attr:`st_rdev` field from :c:type:`stat`).
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: makedev(major, minor)
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Compose a raw device number from the major and minor device numbers.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: mkdir(path[, mode])
|
|
|
|
|
|
|
|
Create a directory named *path* with numeric mode *mode*. The default *mode* is
|
|
|
|
``0777`` (octal). On some systems, *mode* is ignored. Where it is used, the
|
2010-06-12 03:28:58 -03:00
|
|
|
current umask value is first masked out. If the directory already exists,
|
|
|
|
:exc:`OSError` is raised.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2007-11-02 05:24:59 -03:00
|
|
|
It is also possible to create temporary directories; see the
|
|
|
|
:mod:`tempfile` module's :func:`tempfile.mkdtemp` function.
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Availability: Unix, Windows.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. function:: makedirs(path[, mode])
|
|
|
|
|
|
|
|
.. index::
|
|
|
|
single: directory; creating
|
|
|
|
single: UNC paths; and os.makedirs()
|
|
|
|
|
|
|
|
Recursive directory creation function. Like :func:`mkdir`, but makes all
|
2010-11-30 13:53:45 -04:00
|
|
|
intermediate-level directories needed to contain the leaf directory. Raises an
|
2007-08-15 11:28:01 -03:00
|
|
|
:exc:`error` exception if the leaf directory already exists or cannot be
|
|
|
|
created. The default *mode* is ``0777`` (octal). On some systems, *mode* is
|
|
|
|
ignored. Where it is used, the current umask value is first masked out.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
:func:`makedirs` will become confused if the path elements to create include
|
2008-01-05 15:44:22 -04:00
|
|
|
:data:`os.pardir`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 1.5.2
|
|
|
|
|
|
|
|
.. versionchanged:: 2.3
|
|
|
|
This function now handles UNC paths correctly.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: pathconf(path, name)
|
|
|
|
|
|
|
|
Return system configuration information relevant to a named file. *name*
|
|
|
|
specifies the configuration value to retrieve; it may be a string which is the
|
|
|
|
name of a defined system value; these names are specified in a number of
|
|
|
|
standards (POSIX.1, Unix 95, Unix 98, and others). Some platforms define
|
|
|
|
additional names as well. The names known to the host operating system are
|
|
|
|
given in the ``pathconf_names`` dictionary. For configuration variables not
|
|
|
|
included in that mapping, passing an integer for *name* is also accepted.
|
|
|
|
|
|
|
|
If *name* is a string and is not known, :exc:`ValueError` is raised. If a
|
|
|
|
specific value for *name* is not supported by the host system, even if it is
|
|
|
|
included in ``pathconf_names``, an :exc:`OSError` is raised with
|
|
|
|
:const:`errno.EINVAL` for the error number.
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Availability: Unix.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. data:: pathconf_names
|
|
|
|
|
|
|
|
Dictionary mapping names accepted by :func:`pathconf` and :func:`fpathconf` to
|
|
|
|
the integer values defined for those names by the host operating system. This
|
|
|
|
can be used to determine the set of names known to the system. Availability:
|
2008-09-13 14:41:16 -03:00
|
|
|
Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: readlink(path)
|
|
|
|
|
|
|
|
Return a string representing the path to which the symbolic link points. The
|
|
|
|
result may be either an absolute or relative pathname; if it is relative, it may
|
|
|
|
be converted to an absolute pathname using ``os.path.join(os.path.dirname(path),
|
|
|
|
result)``.
|
|
|
|
|
|
|
|
.. versionchanged:: 2.6
|
|
|
|
If the *path* is a Unicode object the result will also be a Unicode object.
|
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: remove(path)
|
|
|
|
|
2009-08-24 14:24:27 -03:00
|
|
|
Remove (delete) the file *path*. If *path* is a directory, :exc:`OSError` is
|
|
|
|
raised; see :func:`rmdir` below to remove a directory. This is identical to
|
|
|
|
the :func:`unlink` function documented below. On Windows, attempting to
|
|
|
|
remove a file that is in use causes an exception to be raised; on Unix, the
|
|
|
|
directory entry is removed but the storage allocated to the file is not made
|
2010-05-06 19:49:28 -03:00
|
|
|
available until the original file is no longer in use.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: removedirs(path)
|
|
|
|
|
|
|
|
.. index:: single: directory; deleting
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Remove directories recursively. Works like :func:`rmdir` except that, if the
|
2007-08-15 11:28:01 -03:00
|
|
|
leaf directory is successfully removed, :func:`removedirs` tries to
|
|
|
|
successively remove every parent directory mentioned in *path* until an error
|
|
|
|
is raised (which is ignored, because it generally means that a parent directory
|
|
|
|
is not empty). For example, ``os.removedirs('foo/bar/baz')`` will first remove
|
|
|
|
the directory ``'foo/bar/baz'``, and then remove ``'foo/bar'`` and ``'foo'`` if
|
|
|
|
they are empty. Raises :exc:`OSError` if the leaf directory could not be
|
|
|
|
successfully removed.
|
|
|
|
|
|
|
|
.. versionadded:: 1.5.2
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: rename(src, dst)
|
|
|
|
|
|
|
|
Rename the file or directory *src* to *dst*. If *dst* is a directory,
|
|
|
|
:exc:`OSError` will be raised. On Unix, if *dst* exists and is a file, it will
|
2008-01-05 15:44:22 -04:00
|
|
|
be replaced silently if the user has permission. The operation may fail on some
|
2007-08-15 11:28:01 -03:00
|
|
|
Unix flavors if *src* and *dst* are on different filesystems. If successful,
|
|
|
|
the renaming will be an atomic operation (this is a POSIX requirement). On
|
|
|
|
Windows, if *dst* already exists, :exc:`OSError` will be raised even if it is a
|
|
|
|
file; there may be no way to implement an atomic rename when *dst* names an
|
2010-05-06 19:49:28 -03:00
|
|
|
existing file.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: renames(old, new)
|
|
|
|
|
|
|
|
Recursive directory or file renaming function. Works like :func:`rename`, except
|
|
|
|
creation of any intermediate directories needed to make the new pathname good is
|
|
|
|
attempted first. After the rename, directories corresponding to rightmost path
|
|
|
|
segments of the old name will be pruned away using :func:`removedirs`.
|
|
|
|
|
|
|
|
.. versionadded:: 1.5.2
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
This function can fail with the new directory structure made if you lack
|
|
|
|
permissions needed to remove the leaf directory or file.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: rmdir(path)
|
|
|
|
|
2009-08-24 14:48:40 -03:00
|
|
|
Remove (delete) the directory *path*. Only works when the directory is
|
|
|
|
empty, otherwise, :exc:`OSError` is raised. In order to remove whole
|
2010-05-06 19:49:28 -03:00
|
|
|
directory trees, :func:`shutil.rmtree` can be used.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: stat(path)
|
|
|
|
|
2012-01-14 11:42:02 -04:00
|
|
|
Perform the equivalent of a :c:func:`stat` system call on the given path.
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
(This function follows symlinks; to stat a symlink use :func:`lstat`.)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
The return value is an object whose attributes correspond to the members
|
2012-01-14 11:42:02 -04:00
|
|
|
of the :c:type:`stat` structure, namely:
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
|
|
|
|
* :attr:`st_mode` - protection bits,
|
|
|
|
* :attr:`st_ino` - inode number,
|
|
|
|
* :attr:`st_dev` - device,
|
|
|
|
* :attr:`st_nlink` - number of hard links,
|
|
|
|
* :attr:`st_uid` - user id of owner,
|
|
|
|
* :attr:`st_gid` - group id of owner,
|
|
|
|
* :attr:`st_size` - size of file, in bytes,
|
|
|
|
* :attr:`st_atime` - time of most recent access,
|
|
|
|
* :attr:`st_mtime` - time of most recent content modification,
|
|
|
|
* :attr:`st_ctime` - platform dependent; time of most recent metadata change on
|
|
|
|
Unix, or the time of creation on Windows)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionchanged:: 2.3
|
2008-01-05 15:44:22 -04:00
|
|
|
If :func:`stat_float_times` returns ``True``, the time values are floats, measuring
|
2014-06-27 03:38:14 -03:00
|
|
|
seconds. Fractions of a second may be reported if the system supports that.
|
|
|
|
See :func:`stat_float_times` for further discussion.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
On some Unix systems (such as Linux), the following attributes may also be
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
available:
|
|
|
|
|
2013-10-06 13:11:32 -03:00
|
|
|
* :attr:`st_blocks` - number of 512-byte blocks allocated for file
|
|
|
|
* :attr:`st_blksize` - filesystem blocksize for efficient file system I/O
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
* :attr:`st_rdev` - type of device if an inode device
|
|
|
|
* :attr:`st_flags` - user defined flags for file
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
On other Unix systems (such as FreeBSD), the following attributes may be
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
available (but may be only filled out if root tries to use them):
|
|
|
|
|
|
|
|
* :attr:`st_gen` - file generation number
|
|
|
|
* :attr:`st_birthtime` - time of file creation
|
2007-08-15 11:28:01 -03:00
|
|
|
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
On RISCOS systems, the following attributes are also available:
|
|
|
|
|
|
|
|
* :attr:`st_ftype` (file type)
|
|
|
|
* :attr:`st_attrs` (attributes)
|
|
|
|
* :attr:`st_obtype` (object type).
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
2011-07-04 16:50:02 -03:00
|
|
|
The exact meaning and resolution of the :attr:`st_atime`,
|
|
|
|
:attr:`st_mtime`, and :attr:`st_ctime` attributes depend on the operating
|
|
|
|
system and the file system. For example, on Windows systems using the FAT
|
|
|
|
or FAT32 file systems, :attr:`st_mtime` has 2-second resolution, and
|
|
|
|
:attr:`st_atime` has only 1-day resolution. See your operating system
|
|
|
|
documentation for details.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
For backward compatibility, the return value of :func:`~os.stat` is also accessible
|
2007-08-15 11:28:01 -03:00
|
|
|
as a tuple of at least 10 integers giving the most important (and portable)
|
2012-01-14 11:42:02 -04:00
|
|
|
members of the :c:type:`stat` structure, in the order :attr:`st_mode`,
|
2007-08-15 11:28:01 -03:00
|
|
|
:attr:`st_ino`, :attr:`st_dev`, :attr:`st_nlink`, :attr:`st_uid`,
|
|
|
|
:attr:`st_gid`, :attr:`st_size`, :attr:`st_atime`, :attr:`st_mtime`,
|
|
|
|
:attr:`st_ctime`. More items may be added at the end by some implementations.
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
|
|
|
|
.. index:: module: stat
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
The standard module :mod:`stat` defines functions and constants that are useful
|
2012-01-14 11:42:02 -04:00
|
|
|
for extracting information from a :c:type:`stat` structure. (On Windows, some
|
2007-08-15 11:28:01 -03:00
|
|
|
items are filled with dummy values.)
|
|
|
|
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
Example::
|
2007-08-15 11:28:01 -03:00
|
|
|
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
>>> import os
|
|
|
|
>>> statinfo = os.stat('somefile.txt')
|
|
|
|
>>> statinfo
|
|
|
|
(33188, 422511, 769, 1, 1032, 100, 926, 1105022698,1105022732, 1105022732)
|
|
|
|
>>> statinfo.st_size
|
|
|
|
926
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionchanged:: 2.2
|
|
|
|
Added access to values as attributes of the returned object.
|
|
|
|
|
|
|
|
.. versionchanged:: 2.5
|
2008-01-05 15:44:22 -04:00
|
|
|
Added :attr:`st_gen` and :attr:`st_birthtime`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: stat_float_times([newvalue])
|
|
|
|
|
|
|
|
Determine whether :class:`stat_result` represents time stamps as float objects.
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
If *newvalue* is ``True``, future calls to :func:`~os.stat` return floats, if it is
|
2007-08-15 11:28:01 -03:00
|
|
|
``False``, future calls return ints. If *newvalue* is omitted, return the
|
|
|
|
current setting.
|
|
|
|
|
|
|
|
For compatibility with older Python versions, accessing :class:`stat_result` as
|
|
|
|
a tuple always returns integers.
|
|
|
|
|
|
|
|
.. versionchanged:: 2.5
|
|
|
|
Python now returns float values by default. Applications which do not work
|
|
|
|
correctly with floating point time stamps can use this function to restore the
|
|
|
|
old behaviour.
|
|
|
|
|
|
|
|
The resolution of the timestamps (that is the smallest possible fraction)
|
|
|
|
depends on the system. Some systems only support second resolution; on these
|
|
|
|
systems, the fraction will always be zero.
|
|
|
|
|
|
|
|
It is recommended that this setting is only changed at program startup time in
|
|
|
|
the *__main__* module; libraries should never change this setting. If an
|
|
|
|
application uses a library that works incorrectly if floating point time stamps
|
|
|
|
are processed, this application should turn the feature off until the library
|
|
|
|
has been corrected.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: statvfs(path)
|
|
|
|
|
2012-01-14 11:42:02 -04:00
|
|
|
Perform a :c:func:`statvfs` system call on the given path. The return value is
|
2007-08-15 11:28:01 -03:00
|
|
|
an object whose attributes describe the filesystem on the given path, and
|
2012-01-14 11:42:02 -04:00
|
|
|
correspond to the members of the :c:type:`statvfs` structure, namely:
|
2007-08-15 11:28:01 -03:00
|
|
|
:attr:`f_bsize`, :attr:`f_frsize`, :attr:`f_blocks`, :attr:`f_bfree`,
|
|
|
|
:attr:`f_bavail`, :attr:`f_files`, :attr:`f_ffree`, :attr:`f_favail`,
|
2010-05-06 19:49:28 -03:00
|
|
|
:attr:`f_flag`, :attr:`f_namemax`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. index:: module: statvfs
|
|
|
|
|
|
|
|
For backward compatibility, the return value is also accessible as a tuple whose
|
|
|
|
values correspond to the attributes, in the order given above. The standard
|
|
|
|
module :mod:`statvfs` defines constants that are useful for extracting
|
2012-01-14 11:42:02 -04:00
|
|
|
information from a :c:type:`statvfs` structure when accessing it as a sequence;
|
2007-08-15 11:28:01 -03:00
|
|
|
this remains useful when writing code that needs to work with versions of Python
|
|
|
|
that don't support accessing the fields as attributes.
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Availability: Unix.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
.. versionchanged:: 2.2
|
|
|
|
Added access to values as attributes of the returned object.
|
|
|
|
|
|
|
|
|
2009-03-28 16:16:10 -03:00
|
|
|
.. function:: symlink(source, link_name)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Create a symbolic link pointing to *source* named *link_name*.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: tempnam([dir[, prefix]])
|
|
|
|
|
|
|
|
Return a unique path name that is reasonable for creating a temporary file.
|
|
|
|
This will be an absolute path that names a potential directory entry in the
|
|
|
|
directory *dir* or a common location for temporary files if *dir* is omitted or
|
|
|
|
``None``. If given and not ``None``, *prefix* is used to provide a short prefix
|
|
|
|
to the filename. Applications are responsible for properly creating and
|
|
|
|
managing files created using paths returned by :func:`tempnam`; no automatic
|
|
|
|
cleanup is provided. On Unix, the environment variable :envvar:`TMPDIR`
|
2008-01-05 15:44:22 -04:00
|
|
|
overrides *dir*, while on Windows :envvar:`TMP` is used. The specific
|
2007-08-15 11:28:01 -03:00
|
|
|
behavior of this function depends on the C library implementation; some aspects
|
|
|
|
are underspecified in system documentation.
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
Use of :func:`tempnam` is vulnerable to symlink attacks; consider using
|
|
|
|
:func:`tmpfile` (section :ref:`os-newstreams`) instead.
|
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: tmpnam()
|
|
|
|
|
|
|
|
Return a unique path name that is reasonable for creating a temporary file.
|
|
|
|
This will be an absolute path that names a potential directory entry in a common
|
|
|
|
location for temporary files. Applications are responsible for properly
|
|
|
|
creating and managing files created using paths returned by :func:`tmpnam`; no
|
|
|
|
automatic cleanup is provided.
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
Use of :func:`tmpnam` is vulnerable to symlink attacks; consider using
|
|
|
|
:func:`tmpfile` (section :ref:`os-newstreams`) instead.
|
|
|
|
|
|
|
|
Availability: Unix, Windows. This function probably shouldn't be used on
|
|
|
|
Windows, though: Microsoft's implementation of :func:`tmpnam` always creates a
|
|
|
|
name in the root directory of the current drive, and that's generally a poor
|
|
|
|
location for a temp file (depending on privileges, you may not even be able to
|
|
|
|
open a file using this name).
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: TMP_MAX
|
|
|
|
|
|
|
|
The maximum number of unique names that :func:`tmpnam` will generate before
|
|
|
|
reusing names.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: unlink(path)
|
|
|
|
|
2009-08-24 14:24:27 -03:00
|
|
|
Remove (delete) the file *path*. This is the same function as
|
|
|
|
:func:`remove`; the :func:`unlink` name is its traditional Unix
|
2010-05-06 19:49:28 -03:00
|
|
|
name.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: utime(path, times)
|
|
|
|
|
2008-08-16 00:13:07 -03:00
|
|
|
Set the access and modified times of the file specified by *path*. If *times*
|
|
|
|
is ``None``, then the file's access and modified times are set to the current
|
|
|
|
time. (The effect is similar to running the Unix program :program:`touch` on
|
|
|
|
the path.) Otherwise, *times* must be a 2-tuple of numbers, of the form
|
|
|
|
``(atime, mtime)`` which is used to set the access and modified times,
|
|
|
|
respectively. Whether a directory can be given for *path* depends on whether
|
|
|
|
the operating system implements directories as files (for example, Windows
|
|
|
|
does not). Note that the exact times you set here may not be returned by a
|
Merged revisions 86542,87136,87216,87221,87228,87256,87337-87338,87372,87516,87571,88164 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r86542 | r.david.murray | 2010-11-19 22:48:58 -0500 (Fri, 19 Nov 2010) | 2 lines
Make test class name unique so that both test classes run.
........
r87136 | r.david.murray | 2010-12-08 17:53:00 -0500 (Wed, 08 Dec 2010) | 6 lines
Have script_helper._assert_python strip refcount strings from stderr.
This makes the output of the function and those that depend on it
independent of whether or not they are being run under a debug
build.
........
r87216 | r.david.murray | 2010-12-13 17:50:30 -0500 (Mon, 13 Dec 2010) | 2 lines
#10698: fix typo in example.
........
r87221 | r.david.murray | 2010-12-13 19:55:46 -0500 (Mon, 13 Dec 2010) | 4 lines
#10699: fix docstring for tzset: it does not take a parameter
Thanks to Garrett Cooper for the fix.
........
r87228 | r.david.murray | 2010-12-13 21:25:43 -0500 (Mon, 13 Dec 2010) | 2 lines
Turn on regrtest -W (rerun immediately) option for Windows, too.
........
r87256 | r.david.murray | 2010-12-14 21:19:14 -0500 (Tue, 14 Dec 2010) | 2 lines
#10705: document what the values of debuglevel are and mean.
........
r87337 | r.david.murray | 2010-12-17 11:11:40 -0500 (Fri, 17 Dec 2010) | 2 lines
#10559: provide instructions for accessing sys.argv when first mentioned.
........
r87338 | r.david.murray | 2010-12-17 11:29:07 -0500 (Fri, 17 Dec 2010) | 2 lines
#10454: clarify the compileall docs and help messages.
[changes to compileall.py were not backported, only the doc changes]
........
r87372 | r.david.murray | 2010-12-18 11:39:06 -0500 (Sat, 18 Dec 2010) | 2 lines
#10728: the default for printing help is sys.stdout, not stderr.
........
r87516 | r.david.murray | 2010-12-27 15:09:32 -0500 (Mon, 27 Dec 2010) | 5 lines
#7056: runtest and runtest_inner don't use testdir, so drop it from their sigs
I've only tested regular runs and -j runs. If I've broken anything
else I'm sure I'll hear about it sooner or later.
........
r87571 | r.david.murray | 2010-12-29 14:06:48 -0500 (Wed, 29 Dec 2010) | 2 lines
Fix same typo in docs.
........
r88164 | r.david.murray | 2011-01-24 14:34:58 -0500 (Mon, 24 Jan 2011) | 12 lines
#10960: fix 'stat' links, link to lstat from stat, general tidy of stat doc.
Original patch by Michal Nowikowski, with some additions and wording
fixes by me.
I changed the wording from 'Performs a stat system call' to 'Performs
the equivalent of a stat system call', since on Windows there are no
stat/lstat system calls involved. I also extended Michal's breakout
of the attributes into a list to the other paragraphs, and rearranged
the order of the paragraphs in the 'stat' docs to make it flow
better and put it in what I think is a more logical/useful order.
........
2011-02-11 13:25:54 -04:00
|
|
|
subsequent :func:`~os.stat` call, depending on the resolution with which your
|
|
|
|
operating system records access and modification times; see :func:`~os.stat`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionchanged:: 2.0
|
|
|
|
Added support for ``None`` for *times*.
|
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
2012-05-22 05:27:40 -03:00
|
|
|
.. function:: walk(top, topdown=True, onerror=None, followlinks=False)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. index::
|
|
|
|
single: directory; walking
|
|
|
|
single: directory; traversal
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Generate the file names in a directory tree by walking the tree
|
|
|
|
either top-down or bottom-up. For each directory in the tree rooted at directory
|
2007-08-15 11:28:01 -03:00
|
|
|
*top* (including *top* itself), it yields a 3-tuple ``(dirpath, dirnames,
|
|
|
|
filenames)``.
|
|
|
|
|
|
|
|
*dirpath* is a string, the path to the directory. *dirnames* is a list of the
|
|
|
|
names of the subdirectories in *dirpath* (excluding ``'.'`` and ``'..'``).
|
|
|
|
*filenames* is a list of the names of the non-directory files in *dirpath*.
|
|
|
|
Note that the names in the lists contain no path components. To get a full path
|
|
|
|
(which begins with *top*) to a file or directory in *dirpath*, do
|
|
|
|
``os.path.join(dirpath, name)``.
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
If optional argument *topdown* is ``True`` or not specified, the triple for a
|
2007-08-15 11:28:01 -03:00
|
|
|
directory is generated before the triples for any of its subdirectories
|
2014-06-16 00:51:12 -03:00
|
|
|
(directories are generated top-down). If *topdown* is ``False``, the triple
|
|
|
|
for a directory is generated after the triples for all of its subdirectories
|
|
|
|
(directories are generated bottom-up). No matter the value of *topdown*, the
|
|
|
|
list of subdirectories is retrieved before the tuples for the directory and
|
|
|
|
its subdirectories are generated.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
When *topdown* is ``True``, the caller can modify the *dirnames* list in-place
|
2007-08-15 11:28:01 -03:00
|
|
|
(perhaps using :keyword:`del` or slice assignment), and :func:`walk` will only
|
|
|
|
recurse into the subdirectories whose names remain in *dirnames*; this can be
|
|
|
|
used to prune the search, impose a specific order of visiting, or even to inform
|
|
|
|
:func:`walk` about directories the caller creates or renames before it resumes
|
2015-10-23 07:42:39 -03:00
|
|
|
:func:`walk` again. Modifying *dirnames* when *topdown* is ``False`` has
|
|
|
|
no effect on the behavior of the walk, because in bottom-up mode the directories
|
|
|
|
in *dirnames* are generated before *dirpath* itself is generated.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2011-10-18 07:02:11 -03:00
|
|
|
By default, errors from the :func:`listdir` call are ignored. If optional
|
2007-08-15 11:28:01 -03:00
|
|
|
argument *onerror* is specified, it should be a function; it will be called with
|
|
|
|
one argument, an :exc:`OSError` instance. It can report the error to continue
|
|
|
|
with the walk, or raise the exception to abort the walk. Note that the filename
|
|
|
|
is available as the ``filename`` attribute of the exception object.
|
|
|
|
|
|
|
|
By default, :func:`walk` will not walk down into symbolic links that resolve to
|
2008-01-05 15:44:22 -04:00
|
|
|
directories. Set *followlinks* to ``True`` to visit directories pointed to by
|
2007-08-15 11:28:01 -03:00
|
|
|
symlinks, on systems that support them.
|
|
|
|
|
|
|
|
.. versionadded:: 2.6
|
|
|
|
The *followlinks* parameter.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Be aware that setting *followlinks* to ``True`` can lead to infinite recursion if a
|
2007-08-15 11:28:01 -03:00
|
|
|
link points to a parent directory of itself. :func:`walk` does not keep track of
|
|
|
|
the directories it visited already.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
If you pass a relative pathname, don't change the current working directory
|
|
|
|
between resumptions of :func:`walk`. :func:`walk` never changes the current
|
|
|
|
directory, and assumes that its caller doesn't either.
|
|
|
|
|
|
|
|
This example displays the number of bytes taken by non-directory files in each
|
|
|
|
directory under the starting directory, except that it doesn't look under any
|
|
|
|
CVS subdirectory::
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
In the next example, walking the tree bottom-up is essential: :func:`rmdir`
|
2007-08-15 11:28:01 -03:00
|
|
|
doesn't allow deleting a directory before the directory is empty::
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
# Delete everything reachable from the directory named in "top",
|
2007-08-15 11:28:01 -03:00
|
|
|
# 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))
|
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. _os-process:
|
|
|
|
|
|
|
|
Process Management
|
|
|
|
------------------
|
|
|
|
|
|
|
|
These functions may be used to create and manage processes.
|
|
|
|
|
2013-10-13 14:25:30 -03:00
|
|
|
The various :func:`exec\* <execl>` functions take a list of arguments for the new
|
2007-08-15 11:28:01 -03:00
|
|
|
program loaded into the process. In each case, the first of these arguments is
|
|
|
|
passed to the new program as its own name rather than as an argument a user may
|
|
|
|
have typed on a command line. For the C programmer, this is the ``argv[0]``
|
2012-01-14 11:42:02 -04:00
|
|
|
passed to a program's :c:func:`main`. For example, ``os.execv('/bin/echo',
|
2007-08-15 11:28:01 -03:00
|
|
|
['foo', 'bar'])`` will only print ``bar`` on standard output; ``foo`` will seem
|
|
|
|
to be ignored.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: abort()
|
|
|
|
|
|
|
|
Generate a :const:`SIGABRT` signal to the current process. On Unix, the default
|
|
|
|
behavior is to produce a core dump; on Windows, the process immediately returns
|
2011-07-07 21:14:55 -03:00
|
|
|
an exit code of ``3``. Be aware that calling this function will not call the
|
|
|
|
Python signal handler registered for :const:`SIGABRT` with
|
|
|
|
:func:`signal.signal`.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: execl(path, arg0, arg1, ...)
|
|
|
|
execle(path, arg0, arg1, ..., env)
|
|
|
|
execlp(file, arg0, arg1, ...)
|
|
|
|
execlpe(file, arg0, arg1, ..., env)
|
|
|
|
execv(path, args)
|
|
|
|
execve(path, args, env)
|
|
|
|
execvp(file, args)
|
|
|
|
execvpe(file, args, env)
|
|
|
|
|
|
|
|
These functions all execute a new program, replacing the current process; they
|
|
|
|
do not return. On Unix, the new executable is loaded into the current process,
|
2008-01-05 15:44:22 -04:00
|
|
|
and will have the same process id as the caller. Errors will be reported as
|
2009-01-03 16:55:06 -04:00
|
|
|
:exc:`OSError` exceptions.
|
2008-09-27 21:15:27 -03:00
|
|
|
|
|
|
|
The current process is replaced immediately. Open file objects and
|
|
|
|
descriptors are not flushed, so if there may be data buffered
|
|
|
|
on these open files, you should flush them using
|
|
|
|
:func:`sys.stdout.flush` or :func:`os.fsync` before calling an
|
2013-10-13 14:25:30 -03:00
|
|
|
:func:`exec\* <execl>` function.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2013-10-13 14:25:30 -03:00
|
|
|
The "l" and "v" variants of the :func:`exec\* <execl>` functions differ in how
|
2008-01-05 15:44:22 -04:00
|
|
|
command-line arguments are passed. The "l" variants are perhaps the easiest
|
2007-08-15 11:28:01 -03:00
|
|
|
to work with if the number of parameters is fixed when the code is written; the
|
|
|
|
individual parameters simply become additional parameters to the :func:`execl\*`
|
2008-01-05 15:44:22 -04:00
|
|
|
functions. The "v" variants are good when the number of parameters is
|
2007-08-15 11:28:01 -03:00
|
|
|
variable, with the arguments being passed in a list or tuple as the *args*
|
|
|
|
parameter. In either case, the arguments to the child process should start with
|
|
|
|
the name of the command being run, but this is not enforced.
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
The variants which include a "p" near the end (:func:`execlp`,
|
2007-08-15 11:28:01 -03:00
|
|
|
:func:`execlpe`, :func:`execvp`, and :func:`execvpe`) will use the
|
|
|
|
:envvar:`PATH` environment variable to locate the program *file*. When the
|
2013-10-13 14:25:30 -03:00
|
|
|
environment is being replaced (using one of the :func:`exec\*e <execl>` variants,
|
2007-08-15 11:28:01 -03:00
|
|
|
discussed in the next paragraph), the new environment is used as the source of
|
|
|
|
the :envvar:`PATH` variable. The other variants, :func:`execl`, :func:`execle`,
|
|
|
|
:func:`execv`, and :func:`execve`, will not use the :envvar:`PATH` variable to
|
|
|
|
locate the executable; *path* must contain an appropriate absolute or relative
|
|
|
|
path.
|
|
|
|
|
|
|
|
For :func:`execle`, :func:`execlpe`, :func:`execve`, and :func:`execvpe` (note
|
2008-01-05 15:44:22 -04:00
|
|
|
that these all end in "e"), the *env* parameter must be a mapping which is
|
2008-04-19 13:58:28 -03:00
|
|
|
used to define the environment variables for the new process (these are used
|
|
|
|
instead of the current process' environment); the functions :func:`execl`,
|
2007-08-15 11:28:01 -03:00
|
|
|
:func:`execlp`, :func:`execv`, and :func:`execvp` all cause the new process to
|
2009-01-03 16:55:06 -04:00
|
|
|
inherit the environment of the current process.
|
2008-09-27 21:15:27 -03:00
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: _exit(n)
|
|
|
|
|
Merged revisions 85617-85622,85624,85626-85627,85629,85631,85635-85636,85638-85639,85641-85642 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r85617 | georg.brandl | 2010-10-17 12:09:06 +0200 (So, 17 Okt 2010) | 1 line
#5212: md5 weaknesses do not affect hmac, so remove the note about that.
........
r85618 | georg.brandl | 2010-10-17 12:14:38 +0200 (So, 17 Okt 2010) | 1 line
#9086: correct wrong terminology about linking with pythonXY.dll.
........
r85619 | georg.brandl | 2010-10-17 12:15:50 +0200 (So, 17 Okt 2010) | 1 line
Make file names consistent.
........
r85620 | georg.brandl | 2010-10-17 12:22:28 +0200 (So, 17 Okt 2010) | 1 line
Remove second parser module example; it referred to non-readily-available example files, and this kind of discovery is much better done with the AST nowadays anyway.
........
r85621 | georg.brandl | 2010-10-17 12:24:54 +0200 (So, 17 Okt 2010) | 1 line
#9105: move pickle warning to a bit more prominent location.
........
r85622 | georg.brandl | 2010-10-17 12:28:04 +0200 (So, 17 Okt 2010) | 1 line
#9112: document error() and exit() methods of ArgumentParser.
........
r85624 | georg.brandl | 2010-10-17 12:34:28 +0200 (So, 17 Okt 2010) | 1 line
Some markup and style fixes in argparse docs.
........
r85626 | georg.brandl | 2010-10-17 12:38:20 +0200 (So, 17 Okt 2010) | 1 line
#9117: fix syntax for class definition.
........
r85627 | georg.brandl | 2010-10-17 12:44:11 +0200 (So, 17 Okt 2010) | 1 line
#9138: reword introduction to classes in Python.
........
r85629 | georg.brandl | 2010-10-17 12:51:45 +0200 (So, 17 Okt 2010) | 1 line
#5962: clarify sys.exit() vs. threads.
........
r85631 | georg.brandl | 2010-10-17 12:53:54 +0200 (So, 17 Okt 2010) | 1 line
Fix capitalization.
........
r85635 | georg.brandl | 2010-10-17 13:03:22 +0200 (So, 17 Okt 2010) | 1 line
#5121: fix claims about default values leading to segfaults.
........
r85636 | georg.brandl | 2010-10-17 13:06:14 +0200 (So, 17 Okt 2010) | 1 line
#9237: document sys.call_tracing().
........
r85638 | georg.brandl | 2010-10-17 13:13:37 +0200 (So, 17 Okt 2010) | 1 line
Port changes to pickle docs apparently lost in py3k.
........
r85639 | georg.brandl | 2010-10-17 13:23:56 +0200 (So, 17 Okt 2010) | 1 line
Make twisted example a bit more logical.
........
r85641 | georg.brandl | 2010-10-17 13:29:07 +0200 (So, 17 Okt 2010) | 1 line
Fix documentation of dis.opmap direction.
........
r85642 | georg.brandl | 2010-10-17 13:36:28 +0200 (So, 17 Okt 2010) | 1 line
#9730: fix example.
........
2010-11-26 03:53:50 -04:00
|
|
|
Exit the process with status *n*, without calling cleanup handlers, flushing
|
2010-05-06 19:49:28 -03:00
|
|
|
stdio buffers, etc.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
Merged revisions 85617-85622,85624,85626-85627,85629,85631,85635-85636,85638-85639,85641-85642 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r85617 | georg.brandl | 2010-10-17 12:09:06 +0200 (So, 17 Okt 2010) | 1 line
#5212: md5 weaknesses do not affect hmac, so remove the note about that.
........
r85618 | georg.brandl | 2010-10-17 12:14:38 +0200 (So, 17 Okt 2010) | 1 line
#9086: correct wrong terminology about linking with pythonXY.dll.
........
r85619 | georg.brandl | 2010-10-17 12:15:50 +0200 (So, 17 Okt 2010) | 1 line
Make file names consistent.
........
r85620 | georg.brandl | 2010-10-17 12:22:28 +0200 (So, 17 Okt 2010) | 1 line
Remove second parser module example; it referred to non-readily-available example files, and this kind of discovery is much better done with the AST nowadays anyway.
........
r85621 | georg.brandl | 2010-10-17 12:24:54 +0200 (So, 17 Okt 2010) | 1 line
#9105: move pickle warning to a bit more prominent location.
........
r85622 | georg.brandl | 2010-10-17 12:28:04 +0200 (So, 17 Okt 2010) | 1 line
#9112: document error() and exit() methods of ArgumentParser.
........
r85624 | georg.brandl | 2010-10-17 12:34:28 +0200 (So, 17 Okt 2010) | 1 line
Some markup and style fixes in argparse docs.
........
r85626 | georg.brandl | 2010-10-17 12:38:20 +0200 (So, 17 Okt 2010) | 1 line
#9117: fix syntax for class definition.
........
r85627 | georg.brandl | 2010-10-17 12:44:11 +0200 (So, 17 Okt 2010) | 1 line
#9138: reword introduction to classes in Python.
........
r85629 | georg.brandl | 2010-10-17 12:51:45 +0200 (So, 17 Okt 2010) | 1 line
#5962: clarify sys.exit() vs. threads.
........
r85631 | georg.brandl | 2010-10-17 12:53:54 +0200 (So, 17 Okt 2010) | 1 line
Fix capitalization.
........
r85635 | georg.brandl | 2010-10-17 13:03:22 +0200 (So, 17 Okt 2010) | 1 line
#5121: fix claims about default values leading to segfaults.
........
r85636 | georg.brandl | 2010-10-17 13:06:14 +0200 (So, 17 Okt 2010) | 1 line
#9237: document sys.call_tracing().
........
r85638 | georg.brandl | 2010-10-17 13:13:37 +0200 (So, 17 Okt 2010) | 1 line
Port changes to pickle docs apparently lost in py3k.
........
r85639 | georg.brandl | 2010-10-17 13:23:56 +0200 (So, 17 Okt 2010) | 1 line
Make twisted example a bit more logical.
........
r85641 | georg.brandl | 2010-10-17 13:29:07 +0200 (So, 17 Okt 2010) | 1 line
Fix documentation of dis.opmap direction.
........
r85642 | georg.brandl | 2010-10-17 13:36:28 +0200 (So, 17 Okt 2010) | 1 line
#9730: fix example.
........
2010-11-26 03:53:50 -04:00
|
|
|
The standard way to exit is ``sys.exit(n)``. :func:`_exit` should
|
|
|
|
normally only be used in the child process after a :func:`fork`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
The following exit codes are defined and can be used with :func:`_exit`,
|
2007-08-15 11:28:01 -03:00
|
|
|
although they are not required. These are typically used for system programs
|
|
|
|
written in Python, such as a mail server's external command delivery program.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
Some of these may not be available on all Unix platforms, since there is some
|
|
|
|
variation. These constants are defined where they are defined by the underlying
|
|
|
|
platform.
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_OK
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Exit code that means no error occurred.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_USAGE
|
|
|
|
|
|
|
|
Exit code that means the command was used incorrectly, such as when the wrong
|
2010-05-06 19:49:28 -03:00
|
|
|
number of arguments are given.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_DATAERR
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Exit code that means the input data was incorrect.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_NOINPUT
|
|
|
|
|
|
|
|
Exit code that means an input file did not exist or was not readable.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_NOUSER
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Exit code that means a specified user did not exist.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_NOHOST
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Exit code that means a specified host did not exist.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_UNAVAILABLE
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Exit code that means that a required service is unavailable.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_SOFTWARE
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Exit code that means an internal software error was detected.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_OSERR
|
|
|
|
|
|
|
|
Exit code that means an operating system error was detected, such as the
|
2010-05-06 19:49:28 -03:00
|
|
|
inability to fork or create a pipe.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_OSFILE
|
|
|
|
|
|
|
|
Exit code that means some system file did not exist, could not be opened, or had
|
2010-05-06 19:49:28 -03:00
|
|
|
some other kind of error.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_CANTCREAT
|
|
|
|
|
|
|
|
Exit code that means a user specified output file could not be created.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_IOERR
|
|
|
|
|
|
|
|
Exit code that means that an error occurred while doing I/O on some file.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_TEMPFAIL
|
|
|
|
|
|
|
|
Exit code that means a temporary failure occurred. This indicates something
|
|
|
|
that may not really be an error, such as a network connection that couldn't be
|
2010-05-06 19:49:28 -03:00
|
|
|
made during a retryable operation.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_PROTOCOL
|
|
|
|
|
|
|
|
Exit code that means that a protocol exchange was illegal, invalid, or not
|
2010-05-06 19:49:28 -03:00
|
|
|
understood.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_NOPERM
|
|
|
|
|
|
|
|
Exit code that means that there were insufficient permissions to perform the
|
2010-05-06 19:49:28 -03:00
|
|
|
operation (but not intended for file system problems).
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_CONFIG
|
|
|
|
|
|
|
|
Exit code that means that some kind of configuration error occurred.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: EX_NOTFOUND
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Exit code that means something like "an entry was not found".
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: fork()
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Fork a child process. Return ``0`` in the child and the child's process id in the
|
2008-03-14 23:32:49 -03:00
|
|
|
parent. If an error occurs :exc:`OSError` is raised.
|
2008-09-30 17:41:13 -03:00
|
|
|
|
|
|
|
Note that some platforms including FreeBSD <= 6.3, Cygwin and OS/2 EMX have
|
|
|
|
known issues when using fork() from a thread.
|
|
|
|
|
2013-10-29 17:08:56 -03:00
|
|
|
.. warning::
|
|
|
|
|
|
|
|
See :mod:`ssl` for applications that use the SSL module with fork().
|
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: forkpty()
|
|
|
|
|
|
|
|
Fork a child process, using a new pseudo-terminal as the child's controlling
|
|
|
|
terminal. Return a pair of ``(pid, fd)``, where *pid* is ``0`` in the child, the
|
|
|
|
new child's process id in the parent, and *fd* is the file descriptor of the
|
|
|
|
master end of the pseudo-terminal. For a more portable approach, use the
|
2008-03-14 23:32:49 -03:00
|
|
|
:mod:`pty` module. If an error occurs :exc:`OSError` is raised.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: some flavors of Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: kill(pid, sig)
|
|
|
|
|
|
|
|
.. index::
|
|
|
|
single: process; killing
|
|
|
|
single: process; signalling
|
|
|
|
|
|
|
|
Send signal *sig* to the process *pid*. Constants for the specific signals
|
|
|
|
available on the host platform are defined in the :mod:`signal` module.
|
2010-04-02 20:26:06 -03:00
|
|
|
|
|
|
|
Windows: The :data:`signal.CTRL_C_EVENT` and
|
|
|
|
:data:`signal.CTRL_BREAK_EVENT` signals are special signals which can
|
|
|
|
only be sent to console processes which share a common console window,
|
|
|
|
e.g., some subprocesses. Any other value for *sig* will cause the process
|
|
|
|
to be unconditionally killed by the TerminateProcess API, and the exit code
|
|
|
|
will be set to *sig*. The Windows version of :func:`kill` additionally takes
|
|
|
|
process handles to be killed.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-04-20 12:23:18 -03:00
|
|
|
.. versionadded:: 2.7 Windows support
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. function:: killpg(pgid, sig)
|
|
|
|
|
|
|
|
.. index::
|
|
|
|
single: process; killing
|
|
|
|
single: process; signalling
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Send the signal *sig* to the process group *pgid*.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: nice(increment)
|
|
|
|
|
|
|
|
Add *increment* to the process's "niceness". Return the new niceness.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: plock(op)
|
|
|
|
|
|
|
|
Lock program segments into memory. The value of *op* (defined in
|
2010-05-06 19:49:28 -03:00
|
|
|
``<sys/lock.h>``) determines which segments are locked.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: popen(...)
|
|
|
|
popen2(...)
|
|
|
|
popen3(...)
|
|
|
|
popen4(...)
|
|
|
|
:noindex:
|
|
|
|
|
|
|
|
Run child processes, returning opened pipes for communications. These functions
|
|
|
|
are described in section :ref:`os-newstreams`.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: spawnl(mode, path, ...)
|
|
|
|
spawnle(mode, path, ..., env)
|
|
|
|
spawnlp(mode, file, ...)
|
|
|
|
spawnlpe(mode, file, ..., env)
|
|
|
|
spawnv(mode, path, args)
|
|
|
|
spawnve(mode, path, args, env)
|
|
|
|
spawnvp(mode, file, args)
|
|
|
|
spawnvpe(mode, file, args, env)
|
|
|
|
|
|
|
|
Execute the program *path* in a new process.
|
|
|
|
|
|
|
|
(Note that the :mod:`subprocess` module provides more powerful facilities for
|
|
|
|
spawning new processes and retrieving their results; using that module is
|
2009-06-08 21:44:22 -03:00
|
|
|
preferable to using these functions. Check especially the
|
|
|
|
:ref:`subprocess-replacements` section.)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
If *mode* is :const:`P_NOWAIT`, this function returns the process id of the new
|
2007-08-15 11:28:01 -03:00
|
|
|
process; if *mode* is :const:`P_WAIT`, returns the process's exit code if it
|
|
|
|
exits normally, or ``-signal``, where *signal* is the signal that killed the
|
2008-01-05 15:44:22 -04:00
|
|
|
process. On Windows, the process id will actually be the process handle, so can
|
2007-08-15 11:28:01 -03:00
|
|
|
be used with the :func:`waitpid` function.
|
|
|
|
|
2013-10-13 14:25:30 -03:00
|
|
|
The "l" and "v" variants of the :func:`spawn\* <spawnl>` functions differ in how
|
2008-01-05 15:44:22 -04:00
|
|
|
command-line arguments are passed. The "l" variants are perhaps the easiest
|
2007-08-15 11:28:01 -03:00
|
|
|
to work with if the number of parameters is fixed when the code is written; the
|
|
|
|
individual parameters simply become additional parameters to the
|
2008-01-05 15:44:22 -04:00
|
|
|
:func:`spawnl\*` functions. The "v" variants are good when the number of
|
2007-08-15 11:28:01 -03:00
|
|
|
parameters is variable, with the arguments being passed in a list or tuple as
|
|
|
|
the *args* parameter. In either case, the arguments to the child process must
|
|
|
|
start with the name of the command being run.
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
The variants which include a second "p" near the end (:func:`spawnlp`,
|
2007-08-15 11:28:01 -03:00
|
|
|
:func:`spawnlpe`, :func:`spawnvp`, and :func:`spawnvpe`) will use the
|
|
|
|
:envvar:`PATH` environment variable to locate the program *file*. When the
|
2013-10-13 14:25:30 -03:00
|
|
|
environment is being replaced (using one of the :func:`spawn\*e <spawnl>` variants,
|
2007-08-15 11:28:01 -03:00
|
|
|
discussed in the next paragraph), the new environment is used as the source of
|
|
|
|
the :envvar:`PATH` variable. The other variants, :func:`spawnl`,
|
|
|
|
:func:`spawnle`, :func:`spawnv`, and :func:`spawnve`, will not use the
|
|
|
|
:envvar:`PATH` variable to locate the executable; *path* must contain an
|
|
|
|
appropriate absolute or relative path.
|
|
|
|
|
|
|
|
For :func:`spawnle`, :func:`spawnlpe`, :func:`spawnve`, and :func:`spawnvpe`
|
2008-01-05 15:44:22 -04:00
|
|
|
(note that these all end in "e"), the *env* parameter must be a mapping
|
2008-04-19 13:58:28 -03:00
|
|
|
which is used to define the environment variables for the new process (they are
|
|
|
|
used instead of the current process' environment); the functions
|
2007-08-15 11:28:01 -03:00
|
|
|
:func:`spawnl`, :func:`spawnlp`, :func:`spawnv`, and :func:`spawnvp` all cause
|
2009-03-31 15:26:55 -03:00
|
|
|
the new process to inherit the environment of the current process. Note that
|
|
|
|
keys and values in the *env* dictionary must be strings; invalid keys or
|
|
|
|
values will cause the function to fail, with a return value of ``127``.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
As an example, the following calls to :func:`spawnlp` and :func:`spawnvpe` are
|
|
|
|
equivalent::
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
Availability: Unix, Windows. :func:`spawnlp`, :func:`spawnlpe`, :func:`spawnvp`
|
2011-07-18 20:26:58 -03:00
|
|
|
and :func:`spawnvpe` are not available on Windows. :func:`spawnle` and
|
|
|
|
:func:`spawnve` are not thread-safe on Windows; we advise you to use the
|
|
|
|
:mod:`subprocess` module instead.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: P_NOWAIT
|
|
|
|
P_NOWAITO
|
|
|
|
|
2013-10-13 14:25:30 -03:00
|
|
|
Possible values for the *mode* parameter to the :func:`spawn\* <spawnl>` family of
|
2007-08-15 11:28:01 -03:00
|
|
|
functions. If either of these values is given, the :func:`spawn\*` functions
|
2008-01-05 15:44:22 -04:00
|
|
|
will return as soon as the new process has been created, with the process id as
|
2010-05-06 19:49:28 -03:00
|
|
|
the return value.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: P_WAIT
|
|
|
|
|
2013-10-13 14:25:30 -03:00
|
|
|
Possible value for the *mode* parameter to the :func:`spawn\* <spawnl>` family of
|
2007-08-15 11:28:01 -03:00
|
|
|
functions. If this is given as *mode*, the :func:`spawn\*` functions will not
|
|
|
|
return until the new process has run to completion and will return the exit code
|
|
|
|
of the process the run is successful, or ``-signal`` if a signal kills the
|
2010-05-06 19:49:28 -03:00
|
|
|
process.
|
|
|
|
|
|
|
|
Availability: Unix, Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: P_DETACH
|
|
|
|
P_OVERLAY
|
|
|
|
|
2013-10-13 14:25:30 -03:00
|
|
|
Possible values for the *mode* parameter to the :func:`spawn\* <spawnl>` family of
|
2007-08-15 11:28:01 -03:00
|
|
|
functions. These are less portable than those listed above. :const:`P_DETACH`
|
|
|
|
is similar to :const:`P_NOWAIT`, but the new process is detached from the
|
|
|
|
console of the calling process. If :const:`P_OVERLAY` is used, the current
|
|
|
|
process will be replaced; the :func:`spawn\*` function will not return.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
Availability: Windows.
|
|
|
|
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: startfile(path[, operation])
|
|
|
|
|
|
|
|
Start a file with its associated application.
|
|
|
|
|
|
|
|
When *operation* is not specified or ``'open'``, this acts like double-clicking
|
|
|
|
the file in Windows Explorer, or giving the file name as an argument to the
|
|
|
|
:program:`start` command from the interactive command shell: the file is opened
|
|
|
|
with whatever application (if any) its extension is associated.
|
|
|
|
|
|
|
|
When another *operation* is given, it must be a "command verb" that specifies
|
|
|
|
what should be done with the file. Common verbs documented by Microsoft are
|
|
|
|
``'print'`` and ``'edit'`` (to be used on files) as well as ``'explore'`` and
|
|
|
|
``'find'`` (to be used on directories).
|
|
|
|
|
|
|
|
:func:`startfile` returns as soon as the associated application is launched.
|
|
|
|
There is no option to wait for the application to close, and no way to retrieve
|
|
|
|
the application's exit status. The *path* parameter is relative to the current
|
|
|
|
directory. If you want to use an absolute path, make sure the first character
|
2012-01-14 11:42:02 -04:00
|
|
|
is not a slash (``'/'``); the underlying Win32 :c:func:`ShellExecute` function
|
2007-08-15 11:28:01 -03:00
|
|
|
doesn't work if it is. Use the :func:`os.path.normpath` function to ensure that
|
2010-05-06 19:49:28 -03:00
|
|
|
the path is properly encoded for Win32.
|
|
|
|
|
|
|
|
Availability: Windows.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.0
|
|
|
|
|
|
|
|
.. versionadded:: 2.5
|
|
|
|
The *operation* parameter.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: system(command)
|
|
|
|
|
|
|
|
Execute the command (a string) in a subshell. This is implemented by calling
|
2012-01-14 11:42:02 -04:00
|
|
|
the Standard C function :c:func:`system`, and has the same limitations.
|
2009-10-18 04:58:12 -03:00
|
|
|
Changes to :data:`sys.stdin`, etc. are not reflected in the environment of the
|
2009-10-14 12:57:46 -03:00
|
|
|
executed command.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
On Unix, the return value is the exit status of the process encoded in the
|
|
|
|
format specified for :func:`wait`. Note that POSIX does not specify the meaning
|
2012-01-14 11:42:02 -04:00
|
|
|
of the return value of the C :c:func:`system` function, so the return value of
|
2007-08-15 11:28:01 -03:00
|
|
|
the Python function is system-dependent.
|
|
|
|
|
|
|
|
On Windows, the return value is that returned by the system shell after running
|
|
|
|
*command*, given by the Windows environment variable :envvar:`COMSPEC`: on
|
|
|
|
:program:`command.com` systems (Windows 95, 98 and ME) this is always ``0``; on
|
|
|
|
:program:`cmd.exe` systems (Windows NT, 2000 and XP) this is the exit status of
|
|
|
|
the command run; on systems using a non-native shell, consult your shell
|
|
|
|
documentation.
|
|
|
|
|
|
|
|
The :mod:`subprocess` module provides more powerful facilities for spawning new
|
|
|
|
processes and retrieving their results; using that module is preferable to using
|
2010-07-26 10:42:35 -03:00
|
|
|
this function. See the
|
|
|
|
:ref:`subprocess-replacements` section in the :mod:`subprocess` documentation
|
|
|
|
for some helpful recipes.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Availability: Unix, Windows.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. function:: times()
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Return a 5-tuple of floating point numbers indicating accumulated (processor
|
|
|
|
or other) times, in seconds. The items are: user time, system time,
|
|
|
|
children's user time, children's system time, and elapsed real time since a
|
|
|
|
fixed point in the past, in that order. See the Unix manual page
|
|
|
|
:manpage:`times(2)` or the corresponding Windows Platform API documentation.
|
|
|
|
On Windows, only the first two items are filled, the others are zero.
|
|
|
|
|
|
|
|
Availability: Unix, Windows
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: wait()
|
|
|
|
|
|
|
|
Wait for completion of a child process, and return a tuple containing its pid
|
|
|
|
and exit status indication: a 16-bit number, whose low byte is the signal number
|
|
|
|
that killed the process, and whose high byte is the exit status (if the signal
|
|
|
|
number is zero); the high bit of the low byte is set if a core file was
|
2010-05-06 19:49:28 -03:00
|
|
|
produced.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: waitpid(pid, options)
|
|
|
|
|
|
|
|
The details of this function differ on Unix and Windows.
|
|
|
|
|
|
|
|
On Unix: Wait for completion of a child process given by process id *pid*, and
|
|
|
|
return a tuple containing its process id and exit status indication (encoded as
|
|
|
|
for :func:`wait`). The semantics of the call are affected by the value of the
|
|
|
|
integer *options*, which should be ``0`` for normal operation.
|
|
|
|
|
|
|
|
If *pid* is greater than ``0``, :func:`waitpid` requests status information for
|
|
|
|
that specific process. If *pid* is ``0``, the request is for the status of any
|
|
|
|
child in the process group of the current process. If *pid* is ``-1``, the
|
|
|
|
request pertains to any child of the current process. If *pid* is less than
|
|
|
|
``-1``, status is requested for any process in the process group ``-pid`` (the
|
|
|
|
absolute value of *pid*).
|
|
|
|
|
2008-08-15 20:14:00 -03:00
|
|
|
An :exc:`OSError` is raised with the value of errno when the syscall
|
|
|
|
returns -1.
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
On Windows: Wait for completion of a process given by process handle *pid*, and
|
|
|
|
return a tuple containing *pid*, and its exit status shifted left by 8 bits
|
|
|
|
(shifting makes cross-platform use of the function easier). A *pid* less than or
|
|
|
|
equal to ``0`` has no special meaning on Windows, and raises an exception. The
|
|
|
|
value of integer *options* has no effect. *pid* can refer to any process whose
|
2013-10-13 14:25:30 -03:00
|
|
|
id is known, not necessarily a child process. The :func:`spawn\* <spawnl>`
|
|
|
|
functions called with :const:`P_NOWAIT` return suitable process handles.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
2012-11-23 13:45:52 -04:00
|
|
|
.. function:: wait3(options)
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
Similar to :func:`waitpid`, except no process id argument is given and a
|
|
|
|
3-element tuple containing the child's process id, exit status indication, and
|
|
|
|
resource usage information is returned. Refer to :mod:`resource`.\
|
2013-10-13 14:25:30 -03:00
|
|
|
:func:`~resource.getrusage` for details on resource usage information. The
|
|
|
|
option argument is the same as that provided to :func:`waitpid` and
|
|
|
|
:func:`wait4`.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
Availability: Unix.
|
|
|
|
|
|
|
|
.. versionadded:: 2.5
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: wait4(pid, options)
|
|
|
|
|
|
|
|
Similar to :func:`waitpid`, except a 3-element tuple, containing the child's
|
|
|
|
process id, exit status indication, and resource usage information is returned.
|
2013-10-13 14:25:30 -03:00
|
|
|
Refer to :mod:`resource`.\ :func:`~resource.getrusage` for details on
|
|
|
|
resource usage information. The arguments to :func:`wait4` are the same as
|
|
|
|
those provided to :func:`waitpid`.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.5
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: WNOHANG
|
|
|
|
|
|
|
|
The option for :func:`waitpid` to return immediately if no child process status
|
|
|
|
is available immediately. The function returns ``(0, 0)`` in this case.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. data:: WCONTINUED
|
|
|
|
|
|
|
|
This option causes child processes to be reported if they have been continued
|
2010-05-06 19:49:28 -03:00
|
|
|
from a job control stop since their status was last reported.
|
|
|
|
|
|
|
|
Availability: Some Unix systems.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: WUNTRACED
|
|
|
|
|
|
|
|
This option causes child processes to be reported if they have been stopped but
|
2010-05-06 19:49:28 -03:00
|
|
|
their current state has not been reported since they were stopped.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
The following functions take a process status code as returned by
|
|
|
|
:func:`system`, :func:`wait`, or :func:`waitpid` as a parameter. They may be
|
|
|
|
used to determine the disposition of a process.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: WCOREDUMP(status)
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Return ``True`` if a core dump was generated for the process, otherwise
|
2010-05-06 19:49:28 -03:00
|
|
|
return ``False``.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: WIFCONTINUED(status)
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Return ``True`` if the process has been continued from a job control stop,
|
2010-05-06 19:49:28 -03:00
|
|
|
otherwise return ``False``.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: WIFSTOPPED(status)
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Return ``True`` if the process has been stopped, otherwise return
|
2010-05-06 19:49:28 -03:00
|
|
|
``False``.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: WIFSIGNALED(status)
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Return ``True`` if the process exited due to a signal, otherwise return
|
2010-05-06 19:49:28 -03:00
|
|
|
``False``.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: WIFEXITED(status)
|
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
Return ``True`` if the process exited using the :manpage:`exit(2)` system call,
|
2010-05-06 19:49:28 -03:00
|
|
|
otherwise return ``False``.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: WEXITSTATUS(status)
|
|
|
|
|
|
|
|
If ``WIFEXITED(status)`` is true, return the integer parameter to the
|
|
|
|
:manpage:`exit(2)` system call. Otherwise, the return value is meaningless.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: WSTOPSIG(status)
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Return the signal which caused the process to stop.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: WTERMSIG(status)
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Return the signal which caused the process to exit.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. _os-path:
|
|
|
|
|
|
|
|
Miscellaneous System Information
|
|
|
|
--------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: confstr(name)
|
|
|
|
|
|
|
|
Return string-valued system configuration values. *name* specifies the
|
|
|
|
configuration value to retrieve; it may be a string which is the name of a
|
|
|
|
defined system value; these names are specified in a number of standards (POSIX,
|
|
|
|
Unix 95, Unix 98, and others). Some platforms define additional names as well.
|
|
|
|
The names known to the host operating system are given as the keys of the
|
|
|
|
``confstr_names`` dictionary. For configuration variables not included in that
|
2010-05-06 19:49:28 -03:00
|
|
|
mapping, passing an integer for *name* is also accepted.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
If the configuration value specified by *name* isn't defined, ``None`` is
|
|
|
|
returned.
|
|
|
|
|
|
|
|
If *name* is a string and is not known, :exc:`ValueError` is raised. If a
|
|
|
|
specific value for *name* is not supported by the host system, even if it is
|
|
|
|
included in ``confstr_names``, an :exc:`OSError` is raised with
|
|
|
|
:const:`errno.EINVAL` for the error number.
|
|
|
|
|
2010-05-06 19:49:28 -03:00
|
|
|
Availability: Unix
|
|
|
|
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. data:: confstr_names
|
|
|
|
|
|
|
|
Dictionary mapping names accepted by :func:`confstr` to the integer values
|
|
|
|
defined for those names by the host operating system. This can be used to
|
2010-05-06 19:49:28 -03:00
|
|
|
determine the set of names known to the system.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: getloadavg()
|
|
|
|
|
2008-01-12 06:53:29 -04:00
|
|
|
Return the number of processes in the system run queue averaged over the last
|
|
|
|
1, 5, and 15 minutes or raises :exc:`OSError` if the load average was
|
2010-05-06 19:49:28 -03:00
|
|
|
unobtainable.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.3
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: sysconf(name)
|
|
|
|
|
|
|
|
Return integer-valued system configuration values. If the configuration value
|
|
|
|
specified by *name* isn't defined, ``-1`` is returned. The comments regarding
|
|
|
|
the *name* parameter for :func:`confstr` apply here as well; the dictionary that
|
|
|
|
provides information on the known names is given by ``sysconf_names``.
|
2010-05-06 19:49:28 -03:00
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. data:: sysconf_names
|
|
|
|
|
|
|
|
Dictionary mapping names accepted by :func:`sysconf` to the integer values
|
|
|
|
defined for those names by the host operating system. This can be used to
|
2010-05-06 19:49:28 -03:00
|
|
|
determine the set of names known to the system.
|
|
|
|
|
|
|
|
Availability: Unix.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2008-01-05 15:44:22 -04:00
|
|
|
The following data values are used to support path manipulation operations. These
|
2007-08-15 11:28:01 -03:00
|
|
|
are defined for all platforms.
|
|
|
|
|
|
|
|
Higher-level operations on pathnames are defined in the :mod:`os.path` module.
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: curdir
|
|
|
|
|
|
|
|
The constant string used by the operating system to refer to the current
|
2008-09-13 14:41:16 -03:00
|
|
|
directory. This is ``'.'`` for Windows and POSIX. Also available via
|
|
|
|
:mod:`os.path`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. data:: pardir
|
|
|
|
|
|
|
|
The constant string used by the operating system to refer to the parent
|
2008-09-13 14:41:16 -03:00
|
|
|
directory. This is ``'..'`` for Windows and POSIX. Also available via
|
|
|
|
:mod:`os.path`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. data:: sep
|
|
|
|
|
2008-09-13 14:41:16 -03:00
|
|
|
The character used by the operating system to separate pathname components.
|
|
|
|
This is ``'/'`` for POSIX and ``'\\'`` for Windows. Note that knowing this
|
|
|
|
is not sufficient to be able to parse or concatenate pathnames --- use
|
2007-08-15 11:28:01 -03:00
|
|
|
:func:`os.path.split` and :func:`os.path.join` --- but it is occasionally
|
|
|
|
useful. Also available via :mod:`os.path`.
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: altsep
|
|
|
|
|
|
|
|
An alternative character used by the operating system to separate pathname
|
|
|
|
components, or ``None`` if only one separator character exists. This is set to
|
|
|
|
``'/'`` on Windows systems where ``sep`` is a backslash. Also available via
|
|
|
|
:mod:`os.path`.
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: extsep
|
|
|
|
|
|
|
|
The character which separates the base filename from the extension; for example,
|
|
|
|
the ``'.'`` in :file:`os.py`. Also available via :mod:`os.path`.
|
|
|
|
|
|
|
|
.. versionadded:: 2.2
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: pathsep
|
|
|
|
|
|
|
|
The character conventionally used by the operating system to separate search
|
|
|
|
path components (as in :envvar:`PATH`), such as ``':'`` for POSIX or ``';'`` for
|
|
|
|
Windows. Also available via :mod:`os.path`.
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: defpath
|
|
|
|
|
2013-10-13 14:25:30 -03:00
|
|
|
The default search path used by :func:`exec\*p\* <execl>` and
|
|
|
|
:func:`spawn\*p\* <spawnl>` if the environment doesn't have a ``'PATH'``
|
|
|
|
key. Also available via :mod:`os.path`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. data:: linesep
|
|
|
|
|
|
|
|
The string used to separate (or, rather, terminate) lines on the current
|
2008-09-13 14:41:16 -03:00
|
|
|
platform. This may be a single character, such as ``'\n'`` for POSIX, or
|
|
|
|
multiple characters, for example, ``'\r\n'`` for Windows. Do not use
|
|
|
|
*os.linesep* as a line terminator when writing files opened in text mode (the
|
|
|
|
default); use a single ``'\n'`` instead, on all platforms.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. data:: devnull
|
|
|
|
|
2010-05-21 19:03:29 -03:00
|
|
|
The file path of the null device. For example: ``'/dev/null'`` for
|
|
|
|
POSIX, ``'nul'`` for Windows. Also available via :mod:`os.path`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. versionadded:: 2.4
|
|
|
|
|
|
|
|
|
|
|
|
.. _os-miscfunc:
|
|
|
|
|
|
|
|
Miscellaneous Functions
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: urandom(n)
|
|
|
|
|
|
|
|
Return a string of *n* random bytes suitable for cryptographic use.
|
|
|
|
|
|
|
|
This function returns random bytes from an OS-specific randomness source. The
|
|
|
|
returned data should be unpredictable enough for cryptographic applications,
|
|
|
|
though its exact quality depends on the OS implementation. On a UNIX-like
|
2013-10-06 13:43:19 -03:00
|
|
|
system this will query ``/dev/urandom``, and on Windows it will use
|
|
|
|
``CryptGenRandom()``. If a randomness source is not found,
|
|
|
|
:exc:`NotImplementedError` will be raised.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2012-10-16 07:51:26 -03:00
|
|
|
For an easy-to-use interface to the random number generator
|
|
|
|
provided by your platform, please see :class:`random.SystemRandom`.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
2012-10-16 07:23:15 -03:00
|
|
|
.. versionadded:: 2.4
|