VaderЕсли сделать, используя
copy tree:
shutil.copytree(r"/dir/_{0}/*".format(id), r"/dir/{0}".format(id), symlinks=True)
Будет та же самая ошибка:
Traceback (most recent call last):
***
File "/usr/lib64/python2.7/shutil.py", line 168, in copytree
names = os.listdir(src)
OSError: [Errno 2] No such file or directory: '/dir/_222/*'
Если сделать, используя
copy tree, указывая в качестве
src саму директорию:
shutil.copytree(r"/dir/_{0}".format(id), r"/dir/{0}".format(id), symlinks=True)
То появится сообщение:
Traceback (most recent call last):
***
File "/usr/lib64/python2.7/shutil.py", line 174, in copytree
os.makedirs(dst)
File "/usr/lib64/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 17] File exists: '/dir/222'
Удалить директорию
'/dir/222' нет возможности, так как она является точкой монтирования активного логического тома.
Вот что имеем, используя
shutil.move:
shutil.move(r"/dir/_{0}/*".format(id), r"/dir/{0}".format(id))
Traceback (most recent call last):
***
File "/usr/lib64/python2.7/shutil.py", line 292, in move
copy2(src, real_dst)
File "/usr/lib64/python2.7/shutil.py", line 127, in copy2
copyfile(src, dst)
File "/usr/lib64/python2.7/shutil.py", line 81, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: '/dir/_222/*'
В этом случае ошибка та же.
При попытке просто переместить папку получаем:
shutil.move(r"/dir/_{0}".format(id), r"/dir/{0}".format(id))
Большое количество ошибок из-за нехватки места на логическом томе, потому что функция, видимо, тянет с собой содержимое symlinks. Может, я и ошибаюсь, но папка, которая весит 300 Мб, почему-то не влезает на диск в 3 Гб.
Поэтому
shutil не использую.
doza_andСогласно документации Python, модуль
subprocess был призван заменить
os.system:
The subprocess module provides more powerful facilities for spawning new processes and retrieving their results; using that module is preferable to using this function.
Документация
Поэтому его не использовал сначала. Сейчас попробовал, все получилось:
os.system("mv -f /dir/_{0}/* /dir/{0}".format(id))
os.system("pwd")
pwd выдал папку, в которой я храню свои скрипты:
/usr/local/bin