Rename and move file with Python

Zipper1365 picture Zipper1365 · Mar 1, 2017 · Viewed 52.9k times · Source

I have python script that compares existing file names in a folder to a reference table and then determines if it needs to be renamed or not.

As it loops through each filename:

'oldname' = the current file name

'newname' = what it needs to be renamed to

I want rename the file and move it to a new folder "..\renamedfiles"

Can I do the rename and the move at the same time as it iterates through the loop?

Update: Apologies, I'm fairly green with scrpting in general but this appears to be pretty basic. shutil.move is exactly what I needed THANKS- I just didn't know to look for it. Successful test below. Now to work it into the script.

import shutil
os.chdir('C:\Users\me\Desktop\New folder')
renFolder= 'Renamed'
oldname = 'Test.txt'
newname= 'renTest.txt'
shutil.move(oldname, renFolder+'/'+newname)

Answer

Danny picture Danny · Mar 1, 2017

Yes you can do this. In python you can use the move function in shutil library to achieve this.

Lets say on linux, you have a file in /home/user/Downloads folder named "test.txt" and you want to move it to /home/user/Documents and also change the name to "useful_name.txt". You can do both things in the same line of code:

import shutil

shutil.move('/home/user/Downloads/test.txt', '/home/user/Documents/useful_name.txt')

In your case you can do this:

import shutil

shutil.move('oldname', 'renamedfiles/newname')

Cheers.