Function xxx: Random String, File Listing, Number Extraction, and JSON Creation

  • Share this:

Code introduction


This code defines a function xxx that generates a random string, lists all files in a specified directory, extracts numbers from a string, calculates the average of those numbers, creates a JSON data containing this information, and returns the JSON data and the reverse of the input string.


Technology Stack : os, re, json, random, string

Code Type : Function

Code Difficulty :


                
                    
import os
import re
import json
import math
import random
import string

def generate_random_string(length=10):
    return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(length))

def find_files_in_directory(directory):
    for root, dirs, files in os.walk(directory):
        for file in files:
            yield os.path.join(root, file)

def extract_numbers_from_string(input_string):
    return [int(re.findall(r'\d+', input_string)[i]) for i in range(len(re.findall(r'\d+', input_string)))] if re.findall(r'\d+', input_string) else []

def calculate_average(numbers):
    return sum(numbers) / len(numbers) if numbers else 0

def create_json_data(data):
    return json.dumps(data, ensure_ascii=False)

def reverse_string(input_string):
    return input_string[::-1]

def xxx(arg1, arg2):
    # Generate a random string
    random_str = generate_random_string()
    
    # Find all files in a directory
    directory = "/path/to/directory"
    files = list(find_files_in_directory(directory))
    
    # Extract numbers from a string
    numbers = extract_numbers_from_string(arg1)
    
    # Calculate average of numbers
    average = calculate_average(numbers)
    
    # Create JSON data
    json_data = create_json_data({"random_string": random_str, "files": files, "average": average})
    
    # Reverse a string
    reversed_str = reverse_string(arg1)
    
    return json_data, reversed_str

# Example usage:
data, reversed_str = xxx("123abc456", "/path/to/directory")
print(data)
print(reversed_str)