0

我正在尝试使用 shutil 模块将文件从一个驱动器复制到另一个驱动器。由于这是一个 ArcGIS 脚本,我将用户对文件夹源和目标位置的选择存储为:

src = arcpy.GetParameterAsText(0)
dst = arcpy.GetParameterAsText(1)

使用 arcpy.AddMessage(src) 打印出来给我:

C:\Folder1\Folder2\File.extension

这就是我想要的!但是,当我尝试使用 shutil.copy(src,dst) 时,我得到:

u'C:\\Folder1\\Folder2\\File.extension'

IOError: [Errno 2] No such file or directory: u'C:\\Folder1\\Folder2'

这里发生了什么?由于我没有拼出路径,因此我无法将原始输入的“u”更改为“r”...

4

2 回答 2

0

Shutil.copy/unicode wasn't the problem here; tyring to copy a non-existent file was.

于 2014-05-08T13:28:23.937 回答
0

作为文件管理验证的一种形式,您应该始终检查目录是否存在。您可以使用 os.path.exists(path) 方法执行此操作。如果你的路径存在,你应该没有问题。如果没有,请在复制文件之前创建它。

请参见下面的示例代码:

if not os.path.exists(dst):
    os.mkdir(dst)

shutil.copy(src, dst)
于 2014-06-22T03:14:40.010 回答