LU11.L02: Dateien umbenennen

rename_files.py
import argparse
import os
import shutil
import sys
 
 
def main():
    """
    main function
    :return: None
    """
    parser = argparse.ArgumentParser(description='Simple Example')
 
    # Add some arguments
    parser.add_argument('-f', '--folder', help='the folder with the files to rename')
    parser.add_argument('-o', '--old', help='the old string to replace')
    parser.add_argument('-n', '--new', action='append', help='the new_list string to replace with')
    args = parser.parse_args()
    if args.folder is None or args.old is None or args.new is None:
        print('Usage: rename_files.py -f <folder> -o <old> -n <new> [-n <new_list> ...]')
        sys.exit(1)
 
    copy_files(args.folder, args.old, args.new)
    edit_config_files(args.folder, args.old, args.new)
 
def copy_files(folder, old_name, new_list):
    """
    Copy the files
    :param: folder -- the folder with the files to rename
    :param: old_name -- the old string to replace
    :param: new_list -- the new_list string to replace with
    :return: None
    """
    for filename in os.listdir(folder):
        if old_name in filename:
            for new_name in new_list:
                new_filename = filename.replace(old_name, new_name)
                print(f'Copying {filename} to {new_filename}')
                shutil.copy(f'{folder}/{filename}', f'{folder}/{new_filename}')
 
            # remove the original file
            os.remove(f'{folder}/{filename}')
 
def edit_config_files(folder, old_name, new_list):
    """
    Edit the config files
    :param: folder -- the folder with the files to rename
    :param: old_name -- the old string to replace
    :param: new_list -- the new_list string to replace with
    :return: None
    """
    for new_name in new_list:
        with open(f'{folder}/{new_name}_master.txt') as f:
            old_config = f.read()
            new_config = old_config.replace(old_name, new_name)
 
    with open(f'{folder}/{new_name}_master.txt', 'w') as f:
        f.write(new_config)
 
if __name__ == '__main__':
    main()
  • modul/m122/learningunits/lu11/loesungen/rename.txt
  • Zuletzt geändert: 2025/01/13 12:57
  • von msuter