Запустите следующий код из каталога, который содержит каталог с именем bar
(содержащий один или несколько файлов) и каталог с именем baz
(также содержащий один или несколько файлов). Убедитесь, что нет каталога с именем foo
.
import shutil
shutil.copytree('bar', 'foo')
shutil.copytree('baz', 'foo')
Сбой:
$ python copytree_test.py
Traceback (most recent call last):
File "copytree_test.py", line 5, in <module>
shutil.copytree('baz', 'foo')
File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/shutil.py", line 110, in copytree
File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.py", line 172, in makedirs
OSError: [Errno 17] File exists: 'foo'
Я хочу, чтобы это работало так же, как если бы я набрал:
$ mkdir foo
$ cp bar/* foo/
$ cp baz/* foo/
Нужно ли использовать shutil.copy()
для копирования каждого файла в baz
в foo
? (После того, как я уже скопировал содержимое "bar" в "foo" с помощью shutil.copytree()
?) Или есть более простой/лучший способ?