我有一个在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:
就像卢卡斯·格拉夫说的那样。问题是您的目标路径似乎有266个字符长,因此exceeds the limit。在
目标路径较长。所以错误总是在目的地,因为你的源已经存在。假设源路径不是扩展长度路径。在
^{1}$
^{pr2}$您可以尝试使用shorten your filepath和win32api来避免此问题。在
字符串=win32api.GetShortPathName(路径)
您可以在
\\?\
前面加上extended-length paths。夸张:我不认为扩展长度路径对文件访问速度有任何明显的副作用。如果您只想避免扩展长度路径,请使用长度小于或等于源路径的目标路径。在
如前所述,您已经超出了win32路径大小限制。事实证明,限制是在win32中,而不是实际的文件系统驱动程序。解决这个问题的诀窍是在路径前面加上
^{1}$r"\\?\"
,这样win32就可以传递这些路径而不会弄乱它们。只有使用包括驱动器号在内的绝对名称时,它才有效。在它可能不会在所有情况下都起作用,尤其是当您试图将名称传递给子流程时。在
相关问题 更多 >
编程相关推荐