尝试使用Shutil Python modu移动文件时,FileNotFound错误

2024-10-01 17:24:09 发布

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

我编写了以下代码来识别和组织gif和图像文件。cdir是指程序应该组织的目录。当它被执行时,它应该在同一个目录中创建文件夹'Gifs'和'Images'。在

import shutil, os

gifext = ['.gif', 'gifv']
picext = ['.png', '.jpg']

for file in files:
   if file.endswith(tuple(gifext)):
       if not os.path.exists(cdir+'\Gifs'):
           os.makedirs(cdir + '\Gifs')
       shutil.move(cdir + file, cdir + '\Gifs')

   elif file.endswith(tuple(picext)):
       if not os.path.exists(cdir+'\Images'):
           os.makedirs(cdir + '\Images')
       shutil.move(cdir + file, cdir + '\Images')

目录包含以下文件:第一.gif, 第二.gif以及第三.jpg在

但我得到了以下错误:

^{pr2}$

Tags: 目录ifosnotgiffilejpgimages
3条回答

files只包含目录中文件的名称。cdir结尾没有反斜杠,因此,当您将cdirfiles元素连接时,可能会得到一个无效的路径:

"C:\stuff\my\path" + "file_name.png"
# equals
"C:\stuff\my\pathfile_name.png"

后者显然不是您想要的,所以您应该以某种方式将反斜杠添加到cdir中,可能如下所示:

^{pr2}$

错误报告后,目录“test”与文件之间的路径中缺少“\”第一.gif“:

FileNotFoundError: [WinError 2] The system cannot find the file specified: 'C:\\Users\\stavr\\Desktop\\testFIRST.gif'

您可以通过在以下路径中添加“\”来解决此问题:

^{pr2}$

或者

替换:

shutil.move(cdir + file, cdir + '\Gifs')

签署人:

shutil.move(os.getcwd() + '/' + file, cdir + '\Gifs')

顺便说一句: 我想在“吉夫”之前少了一个“.”

gifext = ['.gif', 'gifv']

文件路径不正确。缺少路径分隔符。在

shutil.move(os.path.join(cdir, file), os.path.join(cdir, 'Gifs'))

相关问题 更多 >

    热门问题