perf_testing/scripts/rename.py (36 lines of code) (raw):

import datetime import os import time import shutil import json # Function to create unique folder for each run def create_folder(folder_path): if os.path.exists(folder_path): shutil.rmtree(folder_path) os.makedirs(folder_path) # Function to create files of a specified size def create_files(folder_path, num_files, file_size): start_time = time.time() for i in range(num_files): file_path = os.path.join(folder_path, f"file_{i}.txt") with open(file_path, 'wb') as f: f.write(b'\0' * file_size) end_time = time.time() return end_time - start_time # Function to rename files def rename_files(folder_path): start_time = time.time() for i, filename in enumerate(os.listdir(folder_path)): old_file_path = os.path.join(folder_path, filename) new_file_path = os.path.join(folder_path, f"new_file_{i}.txt") os.rename(old_file_path, new_file_path) end_time = time.time() return end_time - start_time # Specify the folder path base_folder = "./" timestamp = datetime.datetime.now().strftime("%Y%m%d%H%M%S") folder_path = os.path.join(base_folder, f"test_folder_{timestamp}") # Specify the number of files num_files = 5000 # Specify the file size in bytes (1 MB) file_size = 1024 * 1024 # Output file output_file = "output.txt" # Create unique folder for each run create_folder(folder_path) # Measure the time taken to create files create_time = create_files(folder_path, num_files, file_size) # print(f"Time taken to create {num_files} files: {create_time:.4f} seconds") # Measure the time taken to rename files rename_time = rename_files(folder_path) # print(f"Time taken to rename {num_files} files: {rename_time:.4f} seconds") # Clear the test data shutil.rmtree(folder_path) print(json.dumps({"name": "rename_5000_1MB_files", "rename_time": rename_time, "create_time": create_time, "unit": "seconds"}))