Directory File Filter with Time, Base64, Random String Generation

  • Share this:

Code introduction


This function accepts two arguments, the first one is the directory path, and the second one is a regular expression for file names. The function lists all the files in the directory, filters out the files that match the regular expression, and outputs the file names as a JSON format. At the same time, the function will get the current time, convert it to an HTML entity, encode it as a base64 string, generate a random string, and calculate its length.


Technology Stack : os, re, json, time, html, base64, random, string, math

Code Type : Function

Code Difficulty : Intermediate


                
                    
import os
import re
import sys
import json
import time
import html
import base64
import random
import string
import math

def generate_random_string(length=10):
    letters = string.ascii_letters
    return ''.join(random.choice(letters) for i in range(length))

def xxx(arg1, arg2):
    # 使用 os 模块列出指定目录下的文件
    files = os.listdir(arg1)
    
    # 使用 re 模块过滤文件名,只保留包含特定正则表达式的文件
    pattern = re.compile(arg2)
    filtered_files = [file for file in files if pattern.search(file)]
    
    # 使用 json 模块将过滤后的文件列表转换为 JSON 格式
    json_output = json.dumps(filtered_files, ensure_ascii=False)
    
    # 使用 time 模块获取当前时间
    current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    
    # 使用 html 模块将当前时间转换为 HTML 实体
    html_time = html.escape(current_time)
    
    # 使用 base64 模块将 HTML 实体编码为 base64 字符串
    base64_time = base64.b64encode(html_time.encode('utf-8')).decode('utf-8')
    
    # 使用 random 模块生成一个随机字符串
    random_string = generate_random_string(12)
    
    # 使用 math 模块计算随机字符串长度
    length_of_random_string = math.ceil(len(random_string) / 2)
    
    # 打印输出结果
    print(f"Filtered Files: {json_output}")
    print(f"Current Time: {base64_time}")
    print(f"Random String: {random_string}")
    print(f"Length of Random String: {length_of_random_string}")