Ary
Ary

Reputation: 191

Error while moving the file from one folder to another using shutil

I am trying to look for 'jpg,jpeg,png' files in my USB drive and trying to move them one by one to a new folder. when i try to move it manually one file, it works but when i run the following program it fails. Please let me know whats the problem here.

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())

Error:-

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 (most recent call last): File "C:\Users\aryan\AppData\Local\Programs\Python\Python36-32\lib\shutil.py", line 544, in move os.rename(src, real_dst) FileNotFoundError: [WinError 3] The system cannot find the path specified: 'E:\Mac\tattoo4.jpg' -> 'E\Mac\MovedPics'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "", line 7, in move=shutil.move(abspath,newpath) File "C:\Users\aryan\AppData\Local\Programs\Python\Python36-32\lib\shutil.py", line 558, in move copy_function(src, real_dst) File "C:\Users\aryan\AppData\Local\Programs\Python\Python36-32\lib\shutil.py", line 257, in copy2 copyfile(src, dst, follow_symlinks=follow_symlinks) File "C:\Users\aryan\AppData\Local\Programs\Python\Python36-32\lib\shutil.py", line 121, in copyfile with open(dst, 'wb') as fdst: FileNotFoundError: [Errno 2] No such file or directory: 'E\Mac\MovedPics'

Upvotes: 0

Views: 1645

Answers (1)

falsetru
falsetru

Reputation: 368944

There's a missing : in newpath:

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

BTW, you can use raw string literal (you can avoid escaping backslashes):

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

Upvotes: 1

Related Questions