我遇到了一个麻烦的问题,我一直无法弄清楚。 基本上我是从我的电脑本地目录复制文件到一个DropBox文件夹,充当我和其他人的项目存储库。
执行shutil.copy行时,我一直保持命中IO错误。 Errno 2,N osuch文件或目录。 但是目录和文件都存在。 当我将目录更改为不同的/testing位置(我的代码中的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:Python27ArcGIS10.1libshutil.py",line 116,in copy copyfile(src,dst) File "C:Python27ArcGIS10.1libshutil.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'
带重叠I / O的FILE_FLAG_NO_BUFFERING – 字节读取零
恒定写入磁盘速度
如何在Windows上将BYTE数组映射为FILE *
shutil.copy(directory_list+i,'\\?\'+os.path.abspath(copy_dir))
C + + – inheritanceandroid的ostream崩溃,但不是Windows
如何检查是否可以创build给定长度的文件?
如何强制正在运行的程序使用外部方法将其I / O缓冲区的内容刷新到磁盘?
如何在我的terminal上隐藏我的input?
将WriteFile()是primefaces,如果进程被终止,但系统继续运行?
您失败了,因为路径的组合长度大于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是274个字符长,并没有去一些麻烦,大多数Windows文件操作的API将无法正常工作路径长度大于MAX_PATH (这是260,其中一个保留给NUL终结符)。
假设Python使用了正确的API,你可以使用扩展路径前缀 \? (它可能需要使用反斜杠而不是在你的路径中使用正斜杠;我不清楚这一点;阅读文档)。
跳出来的第一件事就是这一行:
shutil.copy(directory_list+i,copy_dir)
考虑改变它
shutil.copy(os.path.join(directory_list,i),copy_dir)
IOW,在连接文件路径时使用os.path.join() 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。