blob: 8ad2d95f06ff82aa5f23024790e4a744b8a95bf1 [file] [log] [blame]
Fred Drake3a0351c1998-04-04 07:23:21 +00001\section{Standard Module \module{posixpath}}
Fred Drakeb91e9341998-07-23 17:59:49 +00002\declaremodule{standard}{posixpath}
3
4\modulesynopsis{Common \POSIX{} pathname manipulations.}
Guido van Rossum470be141995-03-17 16:07:09 +00005
Fred Drake65b32f71998-02-09 20:27:12 +00006This module implements some useful functions on \POSIX{} pathnames.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +00007
Guido van Rossum470be141995-03-17 16:07:09 +00008\strong{Do not import this module directly.} Instead, import the
Fred Drake203b4f11998-05-14 15:16:12 +00009module \module{os}\refstmodindex{os} and use \code{os.path}.
Guido van Rossum470be141995-03-17 16:07:09 +000010
Fred Drake203b4f11998-05-14 15:16:12 +000011\index{path!operations}
Guido van Rossum470be141995-03-17 16:07:09 +000012
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000013\begin{funcdesc}{basename}{p}
14Return the base name of pathname
15\var{p}.
16This is the second half of the pair returned by
17\code{posixpath.split(\var{p})}.
18\end{funcdesc}
19
20\begin{funcdesc}{commonprefix}{list}
21Return the longest string that is a prefix of all strings in
22\var{list}.
23If
24\var{list}
25is empty, return the empty string (\code{''}).
26\end{funcdesc}
27
28\begin{funcdesc}{exists}{p}
29Return true if
30\var{p}
31refers to an existing path.
32\end{funcdesc}
33
34\begin{funcdesc}{expanduser}{p}
35Return the argument with an initial component of \samp{\~} or
36\samp{\~\var{user}} replaced by that \var{user}'s home directory. An
Fred Drake203b4f11998-05-14 15:16:12 +000037initial \samp{\~{}} is replaced by the environment variable
38\code{\${}HOME}; % $ <-- bow to font-lock
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000039an initial \samp{\~\var{user}} is looked up in the password directory through
Fred Drakedb9693e1998-03-11 05:50:42 +000040the built-in module \module{pwd}\refbimodindex{pwd}. If the expansion
41fails, or if the path does not begin with a tilde, the path is
42returned unchanged.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000043\end{funcdesc}
44
Guido van Rossum17383111994-04-21 10:32:28 +000045\begin{funcdesc}{expandvars}{p}
46Return the argument with environment variables expanded. Substrings
47of the form \samp{\$\var{name}} or \samp{\$\{\var{name}\}} are
48replaced by the value of environment variable \var{name}. Malformed
49variable names and references to non-existing variables are left
50unchanged.
51\end{funcdesc}
52
Guido van Rossum2babd7b1998-07-24 20:49:39 +000053\begin{funcdesc}{getsize}{filename}
54Return the size, in bytes, of \var{filename}. Raise
55\exception{os.error} if the file does not exist or is inaccessible.
56\end{funcdesc}
57
58\begin{funcdesc}{getmtime}{filename}
59Return the time of last modification of \var{filename}. The return
60value is integer giving the number of seconds since the epoch (see the
61\module{time} module. Raise \exception{os.error} if the file does not
62exist or is inaccessible.
63\end{funcdesc}
64
65\begin{funcdesc}{getatime}{filename}
66Return the time of last access of \var{filename}. The return
67value is integer giving the number of seconds since the epoch (see the
68\module{time} module. Raise \exception{os.error} if the file does not
69exist or is inaccessible.
70\end{funcdesc}
71
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000072\begin{funcdesc}{isabs}{p}
73Return true if \var{p} is an absolute pathname (begins with a slash).
74\end{funcdesc}
75
76\begin{funcdesc}{isfile}{p}
77Return true if \var{p} is an existing regular file. This follows
Fred Drakedb9693e1998-03-11 05:50:42 +000078symbolic links, so both \function{islink()} and \function{isfile()}
79can be true for the same path.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000080\end{funcdesc}
81
82\begin{funcdesc}{isdir}{p}
83Return true if \var{p} is an existing directory. This follows
Fred Drakedb9693e1998-03-11 05:50:42 +000084symbolic links, so both \function{islink()} and \function{isdir()} can
85be true for the same path.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000086\end{funcdesc}
87
88\begin{funcdesc}{islink}{p}
89Return true if
90\var{p}
91refers to a directory entry that is a symbolic link.
92Always false if symbolic links are not supported.
93\end{funcdesc}
94
95\begin{funcdesc}{ismount}{p}
Guido van Rossum470be141995-03-17 16:07:09 +000096Return true if pathname \var{p} is a \dfn{mount point}: a point in a
97file system where a different file system has been mounted. The
98function checks whether \var{p}'s parent, \file{\var{p}/..}, is on a
99different device than \var{p}, or whether \file{\var{p}/..} and
100\var{p} point to the same i-node on the same device --- this should
Fred Drake65b32f71998-02-09 20:27:12 +0000101detect mount points for all \UNIX{} and \POSIX{} variants.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000102\end{funcdesc}
103
Fred Drakecce10901998-03-17 06:33:25 +0000104\begin{funcdesc}{join}{p\optional{, q\optional{, ...}}}
Barry Warsaw75745871997-02-18 21:53:53 +0000105Joins one or more path components intelligently. If any component is
106an absolute path, all previous components are thrown away, and joining
107continues. The return value is the concatenation of \var{p}, and
108optionally \var{q}, etc., with exactly one slash (\code{'/'}) inserted
109between components, unless \var{p} is empty.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000110\end{funcdesc}
111
112\begin{funcdesc}{normcase}{p}
Guido van Rossum1931c0c1998-02-18 14:00:05 +0000113Normalize the case of a pathname. On \UNIX{}, this returns the path
114unchanged; on case-insensitive filesystems, it converts the path to
115lowercase. On Windows, it also converts forward slashes to backward
116slashes.
117\end{funcdesc}
118
119\begin{funcdesc}{normpath}{p}
120Normalize a pathname. This collapses redundant separators and
121up-level references, e.g. \code{A//B}, \code{A/./B} and
122\code{A/foo/../B} all become \code{A/B}. It does not normalize the
Fred Drakedb9693e1998-03-11 05:50:42 +0000123case (use \function{normcase()} for that). On Windows, it does
124converts forward slashes to backward slashes.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000125\end{funcdesc}
126
Fred Drakecce10901998-03-17 06:33:25 +0000127\begin{funcdesc}{samefile}{p, q}
Fred Drakedb9693e1998-03-11 05:50:42 +0000128Return true if both pathname arguments refer to the same file or
129directory (as indicated by device number and i-node number).
130Raise an exception if a \function{os.stat()} call on either pathname
131fails.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000132\end{funcdesc}
133
134\begin{funcdesc}{split}{p}
Guido van Rossum7c2fdda1996-06-26 19:23:26 +0000135Split the pathname \var{p} in a pair \code{(\var{head}, \var{tail})},
136where \var{tail} is the last pathname component and \var{head} is
137everything leading up to that. The \var{tail} part will never contain
138a slash; if \var{p} ends in a slash, \var{tail} will be empty. If
139there is no slash in \var{p}, \var{head} will be empty. If \var{p} is
140empty, both \var{head} and \var{tail} are empty. Trailing slashes are
141stripped from \var{head} unless it is the root (one or more slashes
142only). In nearly all cases, \code{join(\var{head}, \var{tail})}
143equals \var{p} (the only exception being when there were multiple
144slashes separating \var{head} from \var{tail}).
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000145\end{funcdesc}
146
147\begin{funcdesc}{splitext}{p}
148Split the pathname \var{p} in a pair \code{(\var{root}, \var{ext})}
149such that \code{\var{root} + \var{ext} == \var{p}},
Guido van Rossum56b30ea1996-08-19 23:00:50 +0000150and \var{ext} is empty or begins with a period and contains
151at most one period.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000152\end{funcdesc}
153
Fred Drakecce10901998-03-17 06:33:25 +0000154\begin{funcdesc}{walk}{p, visit, arg}
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000155Calls the function \var{visit} with arguments
156\code{(\var{arg}, \var{dirname}, \var{names})} for each directory in the
157directory tree rooted at \var{p} (including \var{p} itself, if it is a
158directory). The argument \var{dirname} specifies the visited directory,
159the argument \var{names} lists the files in the directory (gotten from
Fred Drakedb9693e1998-03-11 05:50:42 +0000160\code{os.listdir(\var{dirname})}).
Guido van Rossume8e87991997-03-25 15:25:54 +0000161The \var{visit} function may modify \var{names} to
Guido van Rossum470be141995-03-17 16:07:09 +0000162influence the set of directories visited below \var{dirname}, e.g., to
163avoid visiting certain parts of the tree. (The object referred to by
Fred Drakedb9693e1998-03-11 05:50:42 +0000164\var{names} must be modified in place, using \keyword{del} or slice
Guido van Rossum470be141995-03-17 16:07:09 +0000165assignment.)
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000166\end{funcdesc}