如何解决shutil.copy问题?

时间:2019-01-10 16:03:06

标签: python shutil

我不断收到一条错误消息,内容是 “ 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 个答案:

答案 0 :(得分:0)

创建目标目录-os.makedirs(storage),然后调用shutil复制。

如果要接受此目录的存在,则可以:

  • 对于python 3.2+-添加关键字参数exist_ok=True
  • 对于python <3.2-为OSError异常添加try / except块。