当前位置: 首页 > 知识库问答 >
问题:

使用Shutil将文件从一个文件夹移动到另一个文件夹时出错

阎功
2023-03-14

我试图寻找'jpg,jpeg,png'文件在我的USB驱动器,并试图将它们一个接一个地移动到一个新的文件夹。请让我知道这里有什么问题。

import re
import os
import ntpath as path
import shutil

path="E:\\Mac"

newpath="E\\Mac\\MovedPics"


os.chdir(path)
expr=r'\.(jpg|JPG|jpeg|JPEG|png|PNG)$'

for file in os.listdir(path):

    if os.path.isfile(file):
       match=re.search(expr,file)
       if match:
          abspath=os.path.abspath(file)
          print('REGEXP MATCHED :-',abspath)
          move=shutil.move(abspath,newpath)
          if move:
             print('MOVE SUCCESSFUL :-',file)
          else:
             print('MOVE FAILED:-',file)
             break
    else:
       print('DESTINATION DIR ',newpath, ' DOESNT EXIST', file,':', os.getcwd())

错误:-

目标目录E\Mac\MovedPics不存在语音指令2。zip:E:\Mac目的地目录E\Mac\MovedPics不存在usbpicsdata。txt:E:\Mac REGEXP匹配:-E:\Mac\4。jpg回溯(最近一次调用last):文件“C:\Users\aryan\AppData\Local\Programs\Python\Python36-32\lib\shutil.py”,第544行,在move os中。rename(src,real_dst)FileNotFoundError:[WinError 3]系统找不到指定的路径:“E:\Mac\4”。jpg'-

在处理上述异常期间,发生了另一个异常:

回溯(最后一次调用):文件“”,第7行,在move=shutil中。移动(abspath,newpath)文件“C:\Users\aryan\AppData\Local\Programs\Python\Python36-32\lib\shutil.py”,第558行,在move copy_函数(src,real_dst)文件“C:\Users\aryan\AppData\Local\Programs\Python\Python36-32\lib\shutil.py”第257行,在copy2 copyfile(src,dst,follow\symlinks=follow\u symlinks)文件中“C:\Users\aryan\AppData\Local\Programs\Python\Python36-32\lib\shutil。py”,第121行,在copyfile中,打开(dst,'wb')作为fdst:FileNotFoundError:[Errno 2]没有这样的文件或目录:“E\Mac\MovedPics”

共有1个答案

屠锦
2023-03-14

newpath中缺少一个

newpath="E:\\Mac\\MovedPics"
          ^

顺便说一句,您可以使用原始字符串文字(可以避免转义反斜杠):

newpath = r"E:\Mac\MovedPics"  # == "E:\\Mac\\MovedPics"

 类似资料:
  • 我正在尝试创建一个PowerShell脚本,当我的电脑打开时,我可以每天早上运行该脚本,以移动我最近下载的所有类型。x从文件夹y到目标z。 当我运行该代码时,我得到这个错误:

  • 我需要过去7天的存储日志来移动一个新文件夹。但是,我不能移动它们,并得到了这个错误。 重命名(/var/www/html/eMarketing/storage/logs/old-log-2020-02-27,/var/www/html/eMarketing/storage/logs/laravel-2020-02-27.log):不是目录 我的密码在这里

  • aws s3api copy-object-copy-source bucket-1-key*.txt-bucket bucket-1/folder/ 我在bucket的根目录中有许多txt文件,我想将它们移动到同一个bucket中的一个文件夹中。 太感谢了。

  • 问题内容: 情况: 我正在做一个自动化,我必须从一组文件中仅下载CSV文件。现在我只想将CSV文件从一个文件夹移动到另一个文件夹。 题: 您能为我提供代码,以便在文件移动后立即从源文件夹中删除文件吗? 到目前为止,这是我的代码: 编辑:但是我仍然面临一个问题。它会立即下载所有文件,然后删除。但是我的要求是这样的- 它应该下载第一个文件->将下载的文件移到另一个文件夹中->从下载文件夹中删除第一个下

  • 我得到以下错误: 线程“main”java.lang.IllegalArgumentException:错误的fs:hdfs:/user/o/datasets/data.txt,应为:file:/// 也是如此,因为它们用于在文件系统之间传输文件,而不是在文件系统内传输文件。我还尝试了,但根本没有任何作用(没有错误或任何东西)。

  • 我也在尝试用Python创建一个脚本来读取文本文件。在文本文件的每一行上,都有一个文件名。我希望脚本在文本文件的每一行中循环,并将带有文件名的文件从循环的当前行、从源文件夹移动到特定的目标。 希望这段代码能更准确地说明我在做什么: 我想把文件的内容和特定的文件名放到一个数组中,但是我有62700个可能的文件名,所以我想如果它只是在循环到每一行时移动文件,那么它会更有效率吗? 我还想到了使用迭代器(