Как исправить проблему с shutil.copy?
Я получаю сообщение об ошибке "IOError: [Errno 2] Нет такого файла или каталога:" C:\Temp\test2_empty\Storage\Poly1.kml ""
Я хочу скопировать файл из каталога, переместить его во временную папку хранения и переименовать файл, а затем переместить этот файл в другую папку. Каков наилучший способ исправить эту проблему?
from qgis.core import*
import glob, os, shutil, time, qgis
path = r"C:\Temp\test2_kml"
dest = r"C:\Temp\test2_empty"
storage = r"C:\Temp\test2_empty\Storage"
for root,d_names,f_names in os.walk(path):
if not f_names:
continue
prefix = os.path.basename(root)
for f in f_names:
if f.endswith('.kml'):
src = os.path.join(root,f)
print("...")
print(time.strftime('%m/%d/%Y', time.gmtime(os.path.getmtime(src))))
print(os.path.realpath(src))
print(f)
shutil.copy2(src, storage)
for root2,d_names2,f_names2 in os.walk(storage):
for f2 in f_names2:
src2= os.path.join(root2,f2)
os.rename(os.path.join(root2,f2), os.path.join(root2, "{}_{}".format(prefix,f2)))
shutil.move(src2, dest)
1 ответ
Создайте каталог назначения - os.makedirs(storage)
перед вызовом шутил копия.
Если вы хотите принять предварительное существование этого каталога, вы можете:
- для python 3.2+ - добавить аргумент ключевого слова
exist_ok=True
- для python <3.2 - добавить блок try / исключением для исключения OSError.