Join us and get access to hundreds of tutorials and a community of expert Pythonistas.

Unlock This Lesson

This lesson is for members only. Join us and get access to hundreds of tutorials and a community of expert Pythonistas.

Unlock This Lesson

Hint: You can adjust the default video playback speed in your account settings.
Hint: You can set the default subtitles language in your account settings.
Sorry! Looks like there’s an issue with video playback 🙁 This might be due to a temporary outage or because of a configuration issue with your browser. Please see our video player troubleshooting guide to resolve the issue.

Bulk File Rename Tool

Here is an example of a bulk file rename tool you can use for inspiration:

  • rename: Perl-powered file rename script with many helpful built-ins

Here are resources that you can use to build your bulk file rename tool:

00:00 Bulk File Renaming Tool. Now clearly, this isn’t the most glamorous of utilities to be creating, but it can be incredibly useful, particularly when you have hundreds or maybe even thousands of files that you need to rename using a particular format.

00:15 Let’s look at the rename utility in action to see the kind of thing you could be creating. The rename function can be installed using homebrew on macOS or Linux, and you can see it in action here.

00:28 So here, I have a directory full of text files, which I want to rename. I don’t want to lose the numbering, but I do want to replace file with a different piece of text. That can be done using the rename tool, like this.

00:43 So, here is the search string I want to look for, next—what I want to replace it with.

00:50 Then, I’m going to apply that to all the files in this directory.

00:54 As you can see, it’s given me plenty of feedback on what it’s done, and now when we look at the files, we can see they’ve all been renamed appropriately without losing the numbers at the end, so all is well.

01:06 Let’s look at some of the technologies you need to implement a bulk file rename tool. Well, first and foremost, you’ll need to access files, possibly using a combination of os, sys, and shutil—all from the Python standard library. Secondly, you’ll need to accept arguments, possibly using argparse, click, or docopt, which you’d need to investigate as to which suits your requirements the best.

01:30 Finally, naming conventions, possibly using the regex re library, which will allow you to find and replace text, as we’ve seen in the example previously.

01:40 So, let’s take a look at some of the extra challenges you could implement into your bulk file renaming tool project. Now, it’s really only under one heading, but it’s almost limitless. So, extra parameters—you could limit the size, the number of files, or any other limit.

01:55 Whatever you care to implement, you could add as extra command-line parameters to your tool, making it more and more powerful as it grows.

Become a Member to join the conversation.