Python shutil复制失败

2024-05-26 16:26:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个在windows上运行的python脚本,它只是将目录的内容从一个位置复制到另一个位置,但是遇到了以下错误,不知道为什么,我可以确认源文件存在,你知道这里可能出了什么问题吗?在

 File "C:\crmapps\apps\python275-64\lib\shutil.py", line 208, in copytree
    raise Error, errors
shutil.Error: [('\\\\WPLBD04\\pkg\\builds\\promote\\2712\\2712_QCA1990ANFC_CNSS.HW_SP.2.0_win_pro\\sumatraservices\\inRexW\\TLM-2009-07-15\\docs\\doxygen\\html\\classtlm__utils_1_1instance__specific__extensions__per__accessor-members.html', '\\\\sun\\sscn_dev_integration\\promote_per_CL_artifacts\\TECH_PRO.CNSS.2.0\\20141013125710_1115240\\2712_QCA1990ANFC_CNSS.HW_SP.2.0_win_pro\\sumatraservices\\inRexW\\TLM-2009-07-15\\docs\\doxygen\\html\\classtlm__utils_1_1instance__specific__extensions__per__accessor-members.html', "[Errno 2] No such file or directory:

Tags: docshtmlserviceerrorwinproshutilper
2条回答

就像卢卡斯·格拉夫说的那样。问题是您的目标路径似乎有266个字符长,因此exceeds the limit。在

目标路径较长。所以错误总是在目的地,因为你的源已经存在。假设源路径不是扩展长度路径。在

^{1}$
  1. 您可以尝试使用shorten your filepathwin32api来避免此问题。在

    字符串=win32api.GetShortPathName(路径)

  2. 您可以在\\?\前面加上extended-length paths

^{pr2}$

夸张:我不认为扩展长度路径对文件访问速度有任何明显的副作用。如果您只想避免扩展长度路径,请使用长度小于或等于源路径的目标路径。在

如前所述,您已经超出了win32路径大小限制。事实证明,限制是在win32中,而不是实际的文件系统驱动程序。解决这个问题的诀窍是在路径前面加上r"\\?\",这样win32就可以传递这些路径而不会弄乱它们。只有使用包括驱动器号在内的绝对名称时,它才有效。在

^{1}$

它可能不会在所有情况下都起作用,尤其是当您试图将名称传递给子流程时。在

相关问题 更多 >

    热门问题