gpt4 book ai didi

python - 目录存在时 Shutil.copy IO Error2

转载 作者:可可西里 更新时间:2023-11-01 11:49:53 25 4
gpt4 key购买 nike

我的代码遇到了一个棘手的问题,我一直无法解决。基本上,我将文件从我计算机上的本地目录复制到 Dropbox 文件夹,该文件夹充当我和其他一些人的项目存储库。

我在执行 shutil.copy 行时一直遇到 IO 错误。 Errno 2,没有这样的文件或目录。但是目录和文件都存在。当我将目录更改为不同的/测试位置(我的代码中的 test_dir)时,代码运行得非常好。任何见解将不胜感激。

import os, os.path
import re
import shutil
import sys

#File Location
directory_list = "path where files are located"

#Dropbox base directory:
dropbox = "path to dropbox directory"

test_dir = "path to test directory on my local machine"

sed_files = os.listdir(directory_list)

for i in sed_files:
#print i.split("BBB")[0]

#df
copy_dir = re.sub(r'XXX',r'_',i.split("BBB")[0])
copy_dir = re.sub(r'ZZZ',r'/',copy_dir)
copy_dir = dropbox + copy_dir + "/FIXED/"
if not os.path.exists(copy_dir):
os.makedirs(copy_dir)

shutil.copy(directory_list+i,copy_dir)
#print directory_list+i
#os.rename(copy_dir+i,copy_dir+i.split("BBB")[1])

回溯错误是:

Traceback (most recent call last):
File "copy_SE_files.py", line 25, in <module> shutil.copy(direcotry_list+i,copydir)
File "C:\Python27\ArcGIS10.1\lib\shutil.py", line 116, in copy copyfile(src,dst)
File "C:\Python27\ArcGIS10.1\lib\shutil.py", line 82, in copyfile with open(dst, 'wb') as fdst:
IOError: [Errno 2] No such file or directory: 'C:/Users/myusername/Dropbox/NASA_HyspIRI_Project/Field_Data/Spectra/CVARS/April2014/LemonTrees/04172014_SE_LemonTreeCanopy/SE_Files/SpectraZZZCVARSZZZApril2014ZZZLemonTreesZZZZ04172014XXXSEXXXLemonTreeCanopyZZZSEXXXFilesBBBCVARS_na_LemonTrees_Bareground1_4deg_Refl_00355.sed'

由于堆栈溢出的敏锐眼光,问题得以解决。将行修改为:

shutil.copy(directory_list+i,'\\\\?\\'+os.path.abspath(copy_dir))

最佳答案

您失败了,因为路径的总长度大于 Window 的 MAX_PATH 限制。 C:/Users/myusername/Dropbox/NASA_HyspIRI_Project/Field_Data/Spectra/CVARS/April2014/LemonTrees/04172014_SE_LemonTreeCanopy/SE_Files/SpectraZZZCVARSZZZApril2014ZZZLemonTreesZZZZ04172014XXXSEXXXLemonTreeCanopyZZZSEXXXFilesBBBCVARS_na_LemonTrees_Bareground1_4deg_Refl_00355.sed is 274 characters long, and without going to some trouble, most Windows file如果路径长于 MAX_PATH(即 260,其中一个为 NUL 终止符保留),操作 API 将无法正常工作。

假设 Python 使用正确的 API,您可以让它与 the extended path prefix 一起工作, \\?\(它可能要求您在路径中使用反斜杠而不是正斜杠;我不清楚;请阅读文档)。

关于python - 目录存在时 Shutil.copy IO Error2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32660779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com