Python Module shutil: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(13 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
=Internal= | =Internal= | ||
* [[Python Language | * [[Python Language#shutil|Python Language | Standard Library]] | ||
* [[File_Operations_in_Python#Recursively_Copy_a_Directory|File Operations in Python]] | |||
=Overview= | =Overview= | ||
The <code>shutil</code> module offers high-level operations on files and collections of files. In particular, functions are provided which support file copying and removal. For operations on individual files, see also the <code>[[Python Module os|os]]</code> module. | |||
=Recursively Copy a Directory= | |||
<syntaxhighlight lang='python'> | |||
import shutil | |||
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False, dirs_exist_ok=False) | |||
</syntaxhighlight> | |||
All required directories will be created if they don't exist. | |||
==Arguments== | |||
====<tt>ignore</tt>==== | |||
The optional ignore argument is a callable. If given, it is called with the <code>src</code> parameter, which is the directory being visited by <code>copytree()</code>, and <code>names</code> which is the list of <code>src</code> contents, as returned by <code>os.listdir()</code>: | |||
<font size=-1> | |||
callable(src, names) -> ignored_names | |||
</font> | |||
Since <code>copytree()</code> is called recursively, the callable will be called once for each directory that is copied. It returns a list of names relative to the <code>src</code> directory that should not be copied. shutil already contains a function <code>ignore_patterns</code>: | |||
<syntaxhighlight lang='py'> | |||
copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*')) | |||
</syntaxhighlight> | |||
=Recursively Delete a Directory= | |||
<syntaxhighlight lang='python'> | |||
import shutil | |||
shutil.rmtree('/path/to/the/dir/') | |||
</syntaxhighlight> | |||
=Organizatorium= | =Organizatorium= |
Latest revision as of 01:32, 20 June 2022
External
Internal
Overview
The shutil
module offers high-level operations on files and collections of files. In particular, functions are provided which support file copying and removal. For operations on individual files, see also the os
module.
Recursively Copy a Directory
import shutil
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False, dirs_exist_ok=False)
All required directories will be created if they don't exist.
Arguments
ignore
The optional ignore argument is a callable. If given, it is called with the src
parameter, which is the directory being visited by copytree()
, and names
which is the list of src
contents, as returned by os.listdir()
:
callable(src, names) -> ignored_names
Since copytree()
is called recursively, the callable will be called once for each directory that is copied. It returns a list of names relative to the src
directory that should not be copied. shutil already contains a function ignore_patterns
:
copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*'))
Recursively Delete a Directory
import shutil
shutil.rmtree('/path/to/the/dir/')
Organizatorium
from shutil import which
for i in m:
print("{:20}{:7}".format(m[i], "OK" if which(i) else "missing"))