使用shutil

时间:2017-06-30 07:37:39

标签: python python-3.x

我正在寻找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())

错误: -

DESTINATION DIR E \ Mac \ MovedPics DOESNT EXIST voice_instructions_imperial 2.zip:E:\ Mac DESTINATION DIR E \ Mac \ MovedPics DOESNT EXIST usbpicsdata.txt:E:\ Mac REGEXP MATCHED: - E:\ Mac \ tattoo4.jpg Traceback(最近一次调用最后一次):   文件" C:\ Users \ aryan \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ shutil.py",第544行,移动     os.rename(src,real_dst) FileNotFoundError:[WinError 3]系统找不到指定的路径:' E:\ Mac \ tattoo4.jpg' - > &#39,E \的Mac \ MovedPics'

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

追踪(最近一次通话):   文件"",第7行,in     举动= shutil.move(ABSPATH,NEWPATH)   文件" C:\ Users \ aryan \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ shutil.py",第558行,移动     copy_function(src,real_dst)   文件" C:\ Users \ aryan \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ shutil.py",第257行,在copy2中     copyfile(src,dst,follow_symlinks = follow_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 个答案:

答案 0 :(得分:1)

:中缺少newpath

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

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

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