blob: 83f468dd3b4ba69b9499657ad0865885db669128 [file] [log] [blame]
Fred Drake295da241998-08-10 19:42:37 +00001\section{\module{posixpath} ---
2 Common \POSIX{} pathname manipulations.}
Fred Drakeb91e9341998-07-23 17:59:49 +00003\declaremodule{standard}{posixpath}
4
5\modulesynopsis{Common \POSIX{} pathname manipulations.}
Guido van Rossum470be141995-03-17 16:07:09 +00006
Fred Drake65b32f71998-02-09 20:27:12 +00007This module implements some useful functions on \POSIX{} pathnames.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +00008
Guido van Rossum470be141995-03-17 16:07:09 +00009\strong{Do not import this module directly.} Instead, import the
Fred Drake203b4f11998-05-14 15:16:12 +000010module \module{os}\refstmodindex{os} and use \code{os.path}.
Guido van Rossum470be141995-03-17 16:07:09 +000011
Fred Drake203b4f11998-05-14 15:16:12 +000012\index{path!operations}
Guido van Rossum470be141995-03-17 16:07:09 +000013
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000014\begin{funcdesc}{basename}{p}
15Return the base name of pathname
16\var{p}.
17This is the second half of the pair returned by
18\code{posixpath.split(\var{p})}.
19\end{funcdesc}
20
21\begin{funcdesc}{commonprefix}{list}
22Return the longest string that is a prefix of all strings in
23\var{list}.
24If
25\var{list}
26is empty, return the empty string (\code{''}).
27\end{funcdesc}
28
29\begin{funcdesc}{exists}{p}
30Return true if
31\var{p}
32refers to an existing path.
33\end{funcdesc}
34
35\begin{funcdesc}{expanduser}{p}
36Return the argument with an initial component of \samp{\~} or
37\samp{\~\var{user}} replaced by that \var{user}'s home directory. An
Fred Drake203b4f11998-05-14 15:16:12 +000038initial \samp{\~{}} is replaced by the environment variable
Fred Drake23a16341998-08-06 15:33:55 +000039\envvar{HOME}; an initial \samp{\~\var{user}} is looked up in the
40password directory through the built-in module
41\module{pwd}\refbimodindex{pwd}. If the expansion fails, or if the
42path does not begin with a tilde, the path is returned 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}
Fred Drakeb44e7531998-07-27 21:11:42 +000054\versionadded{1.5.2}
Guido van Rossum2babd7b1998-07-24 20:49:39 +000055Return the size, in bytes, of \var{filename}. Raise
56\exception{os.error} if the file does not exist or is inaccessible.
57\end{funcdesc}
58
59\begin{funcdesc}{getmtime}{filename}
Fred Drakeb44e7531998-07-27 21:11:42 +000060\versionadded{1.5.2}
Guido van Rossum2babd7b1998-07-24 20:49:39 +000061Return the time of last modification of \var{filename}. The return
62value is integer giving the number of seconds since the epoch (see the
63\module{time} module. Raise \exception{os.error} if the file does not
64exist or is inaccessible.
65\end{funcdesc}
66
67\begin{funcdesc}{getatime}{filename}
Fred Drakeb44e7531998-07-27 21:11:42 +000068\versionadded{1.5.2}
Guido van Rossum2babd7b1998-07-24 20:49:39 +000069Return the time of last access of \var{filename}. The return
70value is integer giving the number of seconds since the epoch (see the
71\module{time} module. Raise \exception{os.error} if the file does not
72exist or is inaccessible.
73\end{funcdesc}
74
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000075\begin{funcdesc}{isabs}{p}
76Return true if \var{p} is an absolute pathname (begins with a slash).
77\end{funcdesc}
78
79\begin{funcdesc}{isfile}{p}
80Return true if \var{p} is an existing regular file. This follows
Fred Drakedb9693e1998-03-11 05:50:42 +000081symbolic links, so both \function{islink()} and \function{isfile()}
82can be true for the same path.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000083\end{funcdesc}
84
85\begin{funcdesc}{isdir}{p}
86Return true if \var{p} is an existing directory. This follows
Fred Drakedb9693e1998-03-11 05:50:42 +000087symbolic links, so both \function{islink()} and \function{isdir()} can
88be true for the same path.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000089\end{funcdesc}
90
91\begin{funcdesc}{islink}{p}
92Return true if
93\var{p}
94refers to a directory entry that is a symbolic link.
95Always false if symbolic links are not supported.
96\end{funcdesc}
97
98\begin{funcdesc}{ismount}{p}
Guido van Rossum470be141995-03-17 16:07:09 +000099Return true if pathname \var{p} is a \dfn{mount point}: a point in a
100file system where a different file system has been mounted. The
101function checks whether \var{p}'s parent, \file{\var{p}/..}, is on a
102different device than \var{p}, or whether \file{\var{p}/..} and
103\var{p} point to the same i-node on the same device --- this should
Fred Drake65b32f71998-02-09 20:27:12 +0000104detect mount points for all \UNIX{} and \POSIX{} variants.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000105\end{funcdesc}
106
Fred Drakecce10901998-03-17 06:33:25 +0000107\begin{funcdesc}{join}{p\optional{, q\optional{, ...}}}
Barry Warsaw75745871997-02-18 21:53:53 +0000108Joins one or more path components intelligently. If any component is
109an absolute path, all previous components are thrown away, and joining
110continues. The return value is the concatenation of \var{p}, and
111optionally \var{q}, etc., with exactly one slash (\code{'/'}) inserted
112between components, unless \var{p} is empty.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000113\end{funcdesc}
114
115\begin{funcdesc}{normcase}{p}
Guido van Rossum1931c0c1998-02-18 14:00:05 +0000116Normalize the case of a pathname. On \UNIX{}, this returns the path
117unchanged; on case-insensitive filesystems, it converts the path to
118lowercase. On Windows, it also converts forward slashes to backward
119slashes.
120\end{funcdesc}
121
122\begin{funcdesc}{normpath}{p}
123Normalize a pathname. This collapses redundant separators and
124up-level references, e.g. \code{A//B}, \code{A/./B} and
125\code{A/foo/../B} all become \code{A/B}. It does not normalize the
Fred Drakedb9693e1998-03-11 05:50:42 +0000126case (use \function{normcase()} for that). On Windows, it does
127converts forward slashes to backward slashes.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000128\end{funcdesc}
129
Fred Drakecce10901998-03-17 06:33:25 +0000130\begin{funcdesc}{samefile}{p, q}
Fred Drakedb9693e1998-03-11 05:50:42 +0000131Return true if both pathname arguments refer to the same file or
132directory (as indicated by device number and i-node number).
133Raise an exception if a \function{os.stat()} call on either pathname
134fails.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000135\end{funcdesc}
136
137\begin{funcdesc}{split}{p}
Guido van Rossum7c2fdda1996-06-26 19:23:26 +0000138Split the pathname \var{p} in a pair \code{(\var{head}, \var{tail})},
139where \var{tail} is the last pathname component and \var{head} is
140everything leading up to that. The \var{tail} part will never contain
141a slash; if \var{p} ends in a slash, \var{tail} will be empty. If
142there is no slash in \var{p}, \var{head} will be empty. If \var{p} is
143empty, both \var{head} and \var{tail} are empty. Trailing slashes are
144stripped from \var{head} unless it is the root (one or more slashes
145only). In nearly all cases, \code{join(\var{head}, \var{tail})}
146equals \var{p} (the only exception being when there were multiple
147slashes separating \var{head} from \var{tail}).
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000148\end{funcdesc}
149
150\begin{funcdesc}{splitext}{p}
151Split the pathname \var{p} in a pair \code{(\var{root}, \var{ext})}
152such that \code{\var{root} + \var{ext} == \var{p}},
Guido van Rossum56b30ea1996-08-19 23:00:50 +0000153and \var{ext} is empty or begins with a period and contains
154at most one period.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000155\end{funcdesc}
156
Fred Drakecce10901998-03-17 06:33:25 +0000157\begin{funcdesc}{walk}{p, visit, arg}
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000158Calls the function \var{visit} with arguments
159\code{(\var{arg}, \var{dirname}, \var{names})} for each directory in the
160directory tree rooted at \var{p} (including \var{p} itself, if it is a
161directory). The argument \var{dirname} specifies the visited directory,
162the argument \var{names} lists the files in the directory (gotten from
Fred Drakedb9693e1998-03-11 05:50:42 +0000163\code{os.listdir(\var{dirname})}).
Guido van Rossume8e87991997-03-25 15:25:54 +0000164The \var{visit} function may modify \var{names} to
Guido van Rossum470be141995-03-17 16:07:09 +0000165influence the set of directories visited below \var{dirname}, e.g., to
166avoid visiting certain parts of the tree. (The object referred to by
Fred Drakedb9693e1998-03-11 05:50:42 +0000167\var{names} must be modified in place, using \keyword{del} or slice
Guido van Rossum470be141995-03-17 16:07:09 +0000168assignment.)
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000169\end{funcdesc}