我想把一些图片从目录复制到另一个目录,下面是我的代码:
import os.path
import shutil
def copyFile(sourceDir,targetDir):
for files in os.listdir(sourceDir):
sourceFile=os.path.join(sourceDir,files)
if os.path.isfile(sourceFile) and sourceFile.find('.jpg')>0:
shutil.copy(sourceFile,targetDir)
for i in os.listdir('/Users/liuchong/Desktop/LFW/new'):
copyFile(i,'/Users/liuchong/Desktop/LFW/lfw')
但是当我运行它时,终端告诉我OSError: [Errno 20] Not a directory: '.DS_Store'
我知道“dstore”是Mac中的一个隐藏文件,但如何解决这个bug?
值得一提的是,“Not a directory”错误的一般含义是什么(Errno 20)。这意味着您试图使用的路径的子路径是一个真正的文件,而不是一个目录。这是一个格式错误的路径。
示例:file.txt/test.txt,其中file.txt是现有的真文件(不是目录)。
Python将为具有以下文件的每个I/O操作返回此错误:
操作系统还将返回此错误:
每次出现此错误,都意味着您将文件+文件连接到程序中的某个位置。
此错误是Unix操作系统特有的。在Windows上,对于这种格式错误的路径,您应该得到“找不到文件”。
你的逻辑似乎被严重破坏了。遍历目录中的所有文件,将每个文件传递给
copyFile
。但是,在该函数中,您再次尝试遍历传递给函数的“directory”中的每个文件:除了您不是只传递给函数的目录,而是传递在原始目录中找到的每个文件。目前还不清楚您要做什么,但我认为您需要删除其中一个对
listdir
和相关循环的调用。当您执行
os.listdir('/Users/liuchong/Desktop/LFW/lfw')
时,它将返回目录和文件。在将条目作为参数传递之前,必须检查该条目的目录。相关问题 更多 >
编程相关推荐