blob: 52980120aea89f4d24ee3fc7cf25c461176db874 [file] [log] [blame]
Guido van Rossum5fdeeea1994-01-02 01:22:07 +00001\section{Standard Module \sectcode{posixpath}}
Guido van Rossume47da0a1997-07-17 16:34:52 +00002\label{module-posixpath}
Guido van Rossum5fdeeea1994-01-02 01:22:07 +00003\stmodindex{posixpath}
Guido van Rossum470be141995-03-17 16:07:09 +00004
Fred Drake65b32f71998-02-09 20:27:12 +00005This module implements some useful functions on \POSIX{} pathnames.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +00006
Guido van Rossum470be141995-03-17 16:07:09 +00007\strong{Do not import this module directly.} Instead, import the
8module \code{os} and use \code{os.path}.
Fred Drake54820dc1997-12-15 21:56:05 +00009\refstmodindex{os}
Guido van Rossum470be141995-03-17 16:07:09 +000010
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000011\renewcommand{\indexsubitem}{(in module posixpath)}
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
37initial \samp{\~{}} is replaced by the environment variable \code{\${}HOME};
38an initial \samp{\~\var{user}} is looked up in the password directory through
39the built-in module \code{pwd}. If the expansion fails, or if the
40path does not begin with a tilde, the path is returned unchanged.
Fred Drake54820dc1997-12-15 21:56:05 +000041\refbimodindex{pwd}
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000042\end{funcdesc}
43
Guido van Rossum17383111994-04-21 10:32:28 +000044\begin{funcdesc}{expandvars}{p}
45Return the argument with environment variables expanded. Substrings
46of the form \samp{\$\var{name}} or \samp{\$\{\var{name}\}} are
47replaced by the value of environment variable \var{name}. Malformed
48variable names and references to non-existing variables are left
49unchanged.
50\end{funcdesc}
51
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000052\begin{funcdesc}{isabs}{p}
53Return true if \var{p} is an absolute pathname (begins with a slash).
54\end{funcdesc}
55
56\begin{funcdesc}{isfile}{p}
57Return true if \var{p} is an existing regular file. This follows
Fred Drake54820dc1997-12-15 21:56:05 +000058symbolic links, so both \code{islink()} and \code{isfile()} can be
59true for the same path.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000060\end{funcdesc}
61
62\begin{funcdesc}{isdir}{p}
63Return true if \var{p} is an existing directory. This follows
Fred Drake54820dc1997-12-15 21:56:05 +000064symbolic links, so both \code{islink()} and \code{isdir()} can be true
65for the same path.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000066\end{funcdesc}
67
68\begin{funcdesc}{islink}{p}
69Return true if
70\var{p}
71refers to a directory entry that is a symbolic link.
72Always false if symbolic links are not supported.
73\end{funcdesc}
74
75\begin{funcdesc}{ismount}{p}
Guido van Rossum470be141995-03-17 16:07:09 +000076Return true if pathname \var{p} is a \dfn{mount point}: a point in a
77file system where a different file system has been mounted. The
78function checks whether \var{p}'s parent, \file{\var{p}/..}, is on a
79different device than \var{p}, or whether \file{\var{p}/..} and
80\var{p} point to the same i-node on the same device --- this should
Fred Drake65b32f71998-02-09 20:27:12 +000081detect mount points for all \UNIX{} and \POSIX{} variants.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000082\end{funcdesc}
83
Barry Warsaw75745871997-02-18 21:53:53 +000084\begin{funcdesc}{join}{p\optional{\, q\optional{\, ...}}}
85Joins one or more path components intelligently. If any component is
86an absolute path, all previous components are thrown away, and joining
87continues. The return value is the concatenation of \var{p}, and
88optionally \var{q}, etc., with exactly one slash (\code{'/'}) inserted
89between components, unless \var{p} is empty.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +000090\end{funcdesc}
91
92\begin{funcdesc}{normcase}{p}
93Normalize the case of a pathname. This returns the path unchanged;
94however, a similar function in \code{macpath} converts upper case to
95lower case.
96\end{funcdesc}
97
98\begin{funcdesc}{samefile}{p\, q}
99Return true if both pathname arguments refer to the same file or directory
100(as indicated by device number and i-node number).
Fred Drake54820dc1997-12-15 21:56:05 +0000101Raise an exception if a \code{stat()} call on either pathname fails.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000102\end{funcdesc}
103
104\begin{funcdesc}{split}{p}
Guido van Rossum7c2fdda1996-06-26 19:23:26 +0000105Split the pathname \var{p} in a pair \code{(\var{head}, \var{tail})},
106where \var{tail} is the last pathname component and \var{head} is
107everything leading up to that. The \var{tail} part will never contain
108a slash; if \var{p} ends in a slash, \var{tail} will be empty. If
109there is no slash in \var{p}, \var{head} will be empty. If \var{p} is
110empty, both \var{head} and \var{tail} are empty. Trailing slashes are
111stripped from \var{head} unless it is the root (one or more slashes
112only). In nearly all cases, \code{join(\var{head}, \var{tail})}
113equals \var{p} (the only exception being when there were multiple
114slashes separating \var{head} from \var{tail}).
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000115\end{funcdesc}
116
117\begin{funcdesc}{splitext}{p}
118Split the pathname \var{p} in a pair \code{(\var{root}, \var{ext})}
119such that \code{\var{root} + \var{ext} == \var{p}},
Guido van Rossum56b30ea1996-08-19 23:00:50 +0000120and \var{ext} is empty or begins with a period and contains
121at most one period.
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000122\end{funcdesc}
123
124\begin{funcdesc}{walk}{p\, visit\, arg}
125Calls the function \var{visit} with arguments
126\code{(\var{arg}, \var{dirname}, \var{names})} for each directory in the
127directory tree rooted at \var{p} (including \var{p} itself, if it is a
128directory). The argument \var{dirname} specifies the visited directory,
129the argument \var{names} lists the files in the directory (gotten from
Guido van Rossume8e87991997-03-25 15:25:54 +0000130\code{posix.listdir(\var{dirname})}).
131The \var{visit} function may modify \var{names} to
Guido van Rossum470be141995-03-17 16:07:09 +0000132influence the set of directories visited below \var{dirname}, e.g., to
133avoid visiting certain parts of the tree. (The object referred to by
134\var{names} must be modified in place, using \code{del} or slice
135assignment.)
Guido van Rossum5fdeeea1994-01-02 01:22:07 +0000136\end{funcdesc}