Remove os.path.walk
This commit is contained in:
parent
699adb9cd8
commit
d71ca41b37
|
@ -261,30 +261,6 @@ write files see :func:`open`, and for accessing the filesystem see the
|
||||||
*unc* will always be the empty string. Availability: Windows.
|
*unc* will always be the empty string. Availability: Windows.
|
||||||
|
|
||||||
|
|
||||||
.. function:: walk(path, visit, arg)
|
|
||||||
|
|
||||||
Calls the function *visit* with arguments ``(arg, dirname, names)`` for each
|
|
||||||
directory in the directory tree rooted at *path* (including *path* itself, if it
|
|
||||||
is a directory). The argument *dirname* specifies the visited directory, the
|
|
||||||
argument *names* lists the files in the directory (gotten from
|
|
||||||
``os.listdir(dirname)``). The *visit* function may modify *names* to influence
|
|
||||||
the set of directories visited below *dirname*, e.g. to avoid visiting certain
|
|
||||||
parts of the tree. (The object referred to by *names* must be modified in
|
|
||||||
place, using :keyword:`del` or slice assignment.)
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Symbolic links to directories are not treated as subdirectories, and that
|
|
||||||
:func:`walk` therefore will not visit them. To visit linked directories you must
|
|
||||||
identify them with ``os.path.islink(file)`` and ``os.path.isdir(file)``, and
|
|
||||||
invoke :func:`walk` as necessary.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
The newer :func:`os.walk` :term:`generator` supplies similar functionality
|
|
||||||
and can be easier to use.
|
|
||||||
|
|
||||||
|
|
||||||
.. data:: supports_unicode_filenames
|
.. data:: supports_unicode_filenames
|
||||||
|
|
||||||
True if arbitrary Unicode strings can be used as file names (within limitations
|
True if arbitrary Unicode strings can be used as file names (within limitations
|
||||||
|
|
|
@ -8,7 +8,7 @@ from genericpath import *
|
||||||
__all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
__all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
||||||
"basename","dirname","commonprefix","getsize","getmtime",
|
"basename","dirname","commonprefix","getsize","getmtime",
|
||||||
"getatime","getctime", "islink","exists","lexists","isdir","isfile",
|
"getatime","getctime", "islink","exists","lexists","isdir","isfile",
|
||||||
"walk","expanduser","expandvars","normpath","abspath",
|
"expanduser","expandvars","normpath","abspath",
|
||||||
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
||||||
"devnull","realpath","supports_unicode_filenames"]
|
"devnull","realpath","supports_unicode_filenames"]
|
||||||
|
|
||||||
|
@ -154,33 +154,6 @@ def normpath(s):
|
||||||
s = s[:-1]
|
s = s[:-1]
|
||||||
return s
|
return s
|
||||||
|
|
||||||
|
|
||||||
def walk(top, func, arg):
|
|
||||||
"""Directory tree walk with callback function.
|
|
||||||
|
|
||||||
For each directory in the directory tree rooted at top (including top
|
|
||||||
itself, but excluding '.' and '..'), call func(arg, dirname, fnames).
|
|
||||||
dirname is the name of the directory, and fnames a list of the names of
|
|
||||||
the files and subdirectories in dirname (excluding '.' and '..'). func
|
|
||||||
may modify the fnames list in-place (e.g. via del or slice assignment),
|
|
||||||
and walk will only recurse into the subdirectories whose names remain in
|
|
||||||
fnames; this can be used to implement a filter, or to impose a specific
|
|
||||||
order of visiting. No semantics are defined for, or required of, arg,
|
|
||||||
beyond that arg is always passed to func. It can be used, e.g., to pass
|
|
||||||
a filename pattern, or a mutable object designed to accumulate
|
|
||||||
statistics. Passing None for arg is common."""
|
|
||||||
|
|
||||||
try:
|
|
||||||
names = os.listdir(top)
|
|
||||||
except os.error:
|
|
||||||
return
|
|
||||||
func(arg, top, names)
|
|
||||||
for name in names:
|
|
||||||
name = join(top, name)
|
|
||||||
if isdir(name) and not islink(name):
|
|
||||||
walk(name, func, arg)
|
|
||||||
|
|
||||||
|
|
||||||
def abspath(path):
|
def abspath(path):
|
||||||
"""Return an absolute path."""
|
"""Return an absolute path."""
|
||||||
if not isabs(path):
|
if not isabs(path):
|
||||||
|
|
|
@ -14,7 +14,7 @@ from genericpath import *
|
||||||
__all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
__all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
||||||
"basename","dirname","commonprefix","getsize","getmtime",
|
"basename","dirname","commonprefix","getsize","getmtime",
|
||||||
"getatime","getctime", "islink","exists","lexists","isdir","isfile",
|
"getatime","getctime", "islink","exists","lexists","isdir","isfile",
|
||||||
"ismount","walk","expanduser","expandvars","normpath","abspath",
|
"ismount", "expanduser","expandvars","normpath","abspath",
|
||||||
"splitunc","curdir","pardir","sep","pathsep","defpath","altsep",
|
"splitunc","curdir","pardir","sep","pathsep","defpath","altsep",
|
||||||
"extsep","devnull","realpath","supports_unicode_filenames","relpath"]
|
"extsep","devnull","realpath","supports_unicode_filenames","relpath"]
|
||||||
|
|
||||||
|
@ -226,40 +226,6 @@ def ismount(path):
|
||||||
return len(p) == 1 and p[0] in '/\\'
|
return len(p) == 1 and p[0] in '/\\'
|
||||||
|
|
||||||
|
|
||||||
# Directory tree walk.
|
|
||||||
# For each directory under top (including top itself, but excluding
|
|
||||||
# '.' and '..'), func(arg, dirname, filenames) is called, where
|
|
||||||
# dirname is the name of the directory and filenames is the list
|
|
||||||
# of files (and subdirectories etc.) in the directory.
|
|
||||||
# The func may modify the filenames list, to implement a filter,
|
|
||||||
# or to impose a different order of visiting.
|
|
||||||
|
|
||||||
def walk(top, func, arg):
|
|
||||||
"""Directory tree walk with callback function.
|
|
||||||
|
|
||||||
For each directory in the directory tree rooted at top (including top
|
|
||||||
itself, but excluding '.' and '..'), call func(arg, dirname, fnames).
|
|
||||||
dirname is the name of the directory, and fnames a list of the names of
|
|
||||||
the files and subdirectories in dirname (excluding '.' and '..'). func
|
|
||||||
may modify the fnames list in-place (e.g. via del or slice assignment),
|
|
||||||
and walk will only recurse into the subdirectories whose names remain in
|
|
||||||
fnames; this can be used to implement a filter, or to impose a specific
|
|
||||||
order of visiting. No semantics are defined for, or required of, arg,
|
|
||||||
beyond that arg is always passed to func. It can be used, e.g., to pass
|
|
||||||
a filename pattern, or a mutable object designed to accumulate
|
|
||||||
statistics. Passing None for arg is common."""
|
|
||||||
|
|
||||||
try:
|
|
||||||
names = os.listdir(top)
|
|
||||||
except os.error:
|
|
||||||
return
|
|
||||||
func(arg, top, names)
|
|
||||||
for name in names:
|
|
||||||
name = join(top, name)
|
|
||||||
if isdir(name):
|
|
||||||
walk(name, func, arg)
|
|
||||||
|
|
||||||
|
|
||||||
# Expand paths beginning with '~' or '~user'.
|
# Expand paths beginning with '~' or '~user'.
|
||||||
# '~' means $HOME; '~user' means that user's home directory.
|
# '~' means $HOME; '~user' means that user's home directory.
|
||||||
# If the path doesn't begin with '~', or if the user or $HOME is unknown,
|
# If the path doesn't begin with '~', or if the user or $HOME is unknown,
|
||||||
|
|
|
@ -9,12 +9,12 @@ import os
|
||||||
import stat
|
import stat
|
||||||
from genericpath import *
|
from genericpath import *
|
||||||
from ntpath import (expanduser, expandvars, isabs, islink, splitdrive,
|
from ntpath import (expanduser, expandvars, isabs, islink, splitdrive,
|
||||||
splitext, split, walk)
|
splitext, split)
|
||||||
|
|
||||||
__all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
__all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
||||||
"basename","dirname","commonprefix","getsize","getmtime",
|
"basename","dirname","commonprefix","getsize","getmtime",
|
||||||
"getatime","getctime", "islink","exists","lexists","isdir","isfile",
|
"getatime","getctime", "islink","exists","lexists","isdir","isfile",
|
||||||
"ismount","walk","expanduser","expandvars","normpath","abspath",
|
"ismount","expanduser","expandvars","normpath","abspath",
|
||||||
"splitunc","curdir","pardir","sep","pathsep","defpath","altsep",
|
"splitunc","curdir","pardir","sep","pathsep","defpath","altsep",
|
||||||
"extsep","devnull","realpath","supports_unicode_filenames"]
|
"extsep","devnull","realpath","supports_unicode_filenames"]
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ from genericpath import *
|
||||||
__all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
__all__ = ["normcase","isabs","join","splitdrive","split","splitext",
|
||||||
"basename","dirname","commonprefix","getsize","getmtime",
|
"basename","dirname","commonprefix","getsize","getmtime",
|
||||||
"getatime","getctime","islink","exists","lexists","isdir","isfile",
|
"getatime","getctime","islink","exists","lexists","isdir","isfile",
|
||||||
"ismount","walk","expanduser","expandvars","normpath","abspath",
|
"ismount", "expanduser","expandvars","normpath","abspath",
|
||||||
"samefile","sameopenfile","samestat",
|
"samefile","sameopenfile","samestat",
|
||||||
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
"curdir","pardir","sep","pathsep","defpath","altsep","extsep",
|
||||||
"devnull","realpath","supports_unicode_filenames","relpath"]
|
"devnull","realpath","supports_unicode_filenames","relpath"]
|
||||||
|
@ -193,44 +193,6 @@ def ismount(path):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
# Directory tree walk.
|
|
||||||
# For each directory under top (including top itself, but excluding
|
|
||||||
# '.' and '..'), func(arg, dirname, filenames) is called, where
|
|
||||||
# dirname is the name of the directory and filenames is the list
|
|
||||||
# of files (and subdirectories etc.) in the directory.
|
|
||||||
# The func may modify the filenames list, to implement a filter,
|
|
||||||
# or to impose a different order of visiting.
|
|
||||||
|
|
||||||
def walk(top, func, arg):
|
|
||||||
"""Directory tree walk with callback function.
|
|
||||||
|
|
||||||
For each directory in the directory tree rooted at top (including top
|
|
||||||
itself, but excluding '.' and '..'), call func(arg, dirname, fnames).
|
|
||||||
dirname is the name of the directory, and fnames a list of the names of
|
|
||||||
the files and subdirectories in dirname (excluding '.' and '..'). func
|
|
||||||
may modify the fnames list in-place (e.g. via del or slice assignment),
|
|
||||||
and walk will only recurse into the subdirectories whose names remain in
|
|
||||||
fnames; this can be used to implement a filter, or to impose a specific
|
|
||||||
order of visiting. No semantics are defined for, or required of, arg,
|
|
||||||
beyond that arg is always passed to func. It can be used, e.g., to pass
|
|
||||||
a filename pattern, or a mutable object designed to accumulate
|
|
||||||
statistics. Passing None for arg is common."""
|
|
||||||
|
|
||||||
try:
|
|
||||||
names = os.listdir(top)
|
|
||||||
except os.error:
|
|
||||||
return
|
|
||||||
func(arg, top, names)
|
|
||||||
for name in names:
|
|
||||||
name = join(top, name)
|
|
||||||
try:
|
|
||||||
st = os.lstat(name)
|
|
||||||
except os.error:
|
|
||||||
continue
|
|
||||||
if stat.S_ISDIR(st.st_mode):
|
|
||||||
walk(name, func, arg)
|
|
||||||
|
|
||||||
|
|
||||||
# Expand paths beginning with '~' or '~user'.
|
# Expand paths beginning with '~' or '~user'.
|
||||||
# '~' means $HOME; '~user' means that user's home directory.
|
# '~' means $HOME; '~user' means that user's home directory.
|
||||||
# If the path doesn't begin with '~', or if the user or $HOME is unknown,
|
# If the path doesn't begin with '~', or if the user or $HOME is unknown,
|
||||||
|
|
Loading…
Reference in New Issue