A Script to Batch Rename Multiple Files Using an Editor
Python
2014-01-29 10:41 (12 years ago)

When you start the program, a list of files is displayed in the editor. You can modify and save the list.
The program will rename the files according to your modifications.
Usage:
bulk-rename bulk-rename *.txt bulk-rename temp/
The arguments are passed directly to the ls command.
Be careful as using options like -l might cause issues.
It seems safe to strip any /-w+/ patterns if they're given as arguments.
#!/usr/bin/env python # -*- coding: utf-8 -*-import subprocess import sys import os
TEMP_FILE_NAME = '/tmp/bulk-rename-file-names' EDITOR = 'vim'
def main(): command_result = subprocess.check_output(["ls", "-1"] + sys.argv[1:]) file_names = command_result.splitlines()
with open(TEMP_FILE_NAME, 'w') as fp: fp.write('\n'.join(file_names)) subprocess.check_call([os.environ.get('EDITOR', EDITOR), TEMP_FILE_NAME]) with open(TEMP_FILE_NAME, 'r') as fp: destination_file_names = fp.readlines() for source, destination in zip(file_names, destination_file_names): if source and destination: destination = destination.strip() if source != destination: print "{} -> {}".format(source, destination) os.rename(source, destination) os.unlink(TEMP_FILE_NAME)if name == 'main': main()
Currently unrated
The author runs the application development company Cyberneura.
We look forward to discussing your development needs.
We look forward to discussing your development needs.