本文目录导读:

我来为您生成一个随机文件名列表生成器脚本,这里有几种不同的版本,您可以根据需要选择:
Python 版本(功能最全)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
随机文件名列表生成器
支持自定义文件类型、数量、命名规则
"""
import random
import string
import os
from datetime import datetime
class RandomFilenameGenerator:
def __init__(self):
self.prefixes = ['file', 'doc', 'photo', 'video', 'data', 'backup',
'temp', 'archive', 'project', 'report', 'test', 'config']
self.middle_parts = ['2024', '2025', 'backup', 'final', 'draft',
'v1', 'v2', 'new', 'old', 'updated']
self.extensions = ['.txt', '.doc', '.pdf', '.jpg', '.png', '.mp4',
'.xlsx', '.csv', '.zip', '.mp3', '.html', '.py']
def generate_random_string(self, length=8):
"""生成随机字符串"""
chars = string.ascii_lowercase + string.digits
return ''.join(random.choice(chars) for _ in range(length))
def generate_with_timestamp(self, ext='.txt'):
"""使用时间戳生成文件名"""
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S_%f')[:-3]
return f"file_{timestamp}{ext}"
def generate_with_random_words(self, ext='.txt'):
"""使用随机单词组合生成文件名"""
prefix = random.choice(self.prefixes)
middle = random.choice(self.middle_parts)
random_suffix = self.generate_random_string(4)
return f"{prefix}_{middle}_{random_suffix}{ext}"
def generate_with_uuid(self, ext='.txt'):
"""使用UUID生成文件名"""
import uuid
return f"{uuid.uuid4().hex[:12]}{ext}"
def generate_batch(self, count=10, method='random_words', ext='auto'):
"""批量生成文件名
Args:
count: 生成数量
method: 生成方法 (random_words/timestamp/uuid/custom)
ext: 文件扩展名 ('auto'随机, 或指定如'.txt')
"""
filenames = []
for _ in range(count):
if ext == 'auto':
ext_choice = random.choice(self.extensions)
else:
ext_choice = ext
if method == 'timestamp':
filename = self.generate_with_timestamp(ext_choice)
elif method == 'uuid':
filename = self.generate_with_uuid(ext_choice)
elif method == 'custom':
# 自定义格式
filename = f"{random.choice(self.prefixes)}_{self.generate_random_string(6)}{ext_choice}"
else: # random_words
filename = self.generate_with_random_words(ext_choice)
filenames.append(filename)
return filenames
def main():
"""主函数:命令行交互"""
print("="*50)
print("随机文件名生成器")
print("="*50)
# 创建生成器实例
generator = RandomFilenameGenerator()
# 获取用户输入
try:
count = int(input("请输入要生成的文件名数量 (默认10): ") or "10")
method = input("选择生成方式 [1-随机单词/2-时间戳/3-UUID/4-混合]: ") or "1"
ext_input = input("文件扩展名 (直接回车随机, 或输入如.txt): ") or "auto"
# 转换方法
method_map = {
"1": "random_words",
"2": "timestamp",
"3": "uuid",
"4": "random_words" # 混合模式
}
method = method_map.get(method, "random_words")
# 处理扩展名
if ext_input != "auto" and not ext_input.startswith('.'):
ext_input = f".{ext_input}"
# 生成文件名
filenames = generator.generate_batch(
count=count,
method=method,
ext=ext_input
)
# 输出结果
print(f"\n生成的 {count} 个文件名:")
print("-" * 50)
for i, filename in enumerate(filenames, 1):
print(f"{i:3d}. {filename}")
# 保存到文件
save = input("\n是否保存到文件?[y/N]: ").lower()
if save == 'y':
with open('generated_filenames.txt', 'w', encoding='utf-8') as f:
for filename in filenames:
f.write(filename + '\n')
print(f"已保存到 generated_filenames.txt")
except ValueError as e:
print(f"输入错误: {e}")
except KeyboardInterrupt:
print("\n用户中断操作")
if __name__ == "__main__":
main()
Bash 简单版本
#!/bin/bash
# 随机文件名生成脚本
# 定义文件类型
extensions=("txt" "doc" "pdf" "jpg" "png" "mp4" "zip" "pdf")
# 生成随机字符串函数
generate_random() {
echo $RANDOM | md5sum | head -c 8
}
# 主程序
echo "=== 随机文件名生成器 ==="
# 设置数量
read -p "要生成多少个文件名?(默认10): " count
count=${count:-10}
# 生成文件名
for i in $(seq 1 $count); do
# 选择随机扩展名
ext=${extensions[$((RANDOM % ${#extensions[@]}))]}
# 生成随机文件名
random_str=$(generate_random)
timestamp=$(date +%Y%m%d)
# 组合文件名
filename="file_${timestamp}_${random_str}.${ext}"
echo "$filename"
done
# 保存到文件
read -p "保存到文件?[y/N]: " save
if [[ $save == "y" || $save == "Y" ]]; then
echo "保存文件名列表"
fi
高级版本:Python 带 GUI 界面
#!/usr/bin/env python3
# 随机文件名生成器 - GUI版本
# 需要安装: pip install tkinter
import tkinter as tk
from tkinter import ttk, messagebox
import random
import string
import uuid
from datetime import datetime
class FilenameGeneratorGUI:
def __init__(self, root):
self.root = root
self.root.title("随机文件名生成器")
self.root.geometry("500x400")
# 创建界面控件
self.setup_ui()
def setup_ui(self):
# 主框架
main_frame = ttk.Frame(self.root, padding="10")
main_frame.grid(row=0, column=0, sticky=(tk.W, tk.E, tk.N, tk.S))
# 数量设置
ttk.Label(main_frame, text="生成数量:").grid(row=0, column=0, sticky=tk.W, pady=5)
self.count_var = tk.StringVar(value="10")
ttk.Entry(main_frame, textvariable=self.count_var, width=10).grid(row=0, column=1, sticky=tk.W)
# 文件类型
ttk.Label(main_frame, text="文件扩展名:").grid(row=1, column=0, sticky=tk.W, pady=5)
self.ext_var = tk.StringVar(value="txt")
ext_combo = ttk.Combobox(main_frame, textvariable=self.ext_var,
values=["txt", "doc", "pdf", "jpg", "png", "mp4", "zip"])
ext_combo.grid(row=1, column=1, sticky=tk.W)
# 生成方式
ttk.Label(main_frame, text="生成方式:").grid(row=2, column=0, sticky=tk.W, pady=5)
self.method_var = tk.StringVar(value="随机单词")
method_combo = ttk.Combobox(main_frame, textvariable=self.method_var,
values=["随机单词", "时间戳", "UUID", "随机字符"])
method_combo.grid(row=2, column=1, sticky=tk.W)
# 生成按钮
generate_btn = ttk.Button(main_frame, text="生成文件名", command=self.generate)
generate_btn.grid(row=3, column=0, columnspan=2, pady=20)
# 结果显示
ttk.Label(main_frame, text="生成结果:").grid(row=4, column=0, columnspan=2, sticky=tk.W)
self.result_text = tk.Text(main_frame, width=50, height=10)
self.result_text.grid(row=5, column=0, columnspan=2, pady=10)
# 保存按钮
save_btn = ttk.Button(main_frame, text="保存到文件", command=self.save_to_file)
save_btn.grid(row=6, column=0, columnspan=2)
def generate(self):
"""生成文件名"""
try:
count = int(self.count_var.get())
ext = self.ext_var.get()
method = self.method_var.get()
self.result_text.delete(1.0, tk.END)
for i in range(count):
if method == "随机单词":
filename = self.random_words(ext)
elif method == "时间戳":
filename = f"file_{datetime.now().strftime('%Y%m%d_%H%M%S')}_{random.randint(100,999)}.{ext}"
elif method == "UUID":
filename = f"{uuid.uuid4().hex[:12]}.{ext}"
else: # 随机字符
chars = string.ascii_lowercase + string.digits
filename = ''.join(random.choices(chars, k=8)) + f".{ext}"
self.result_text.insert(tk.END, f"{i+1}. {filename}\n")
except Exception as e:
messagebox.showerror("错误", str(e))
def random_words(self, ext):
"""生成随机单词文件名"""
prefixes = ["file", "doc", "photo", "data", "backup", "project"]
middles = ["2024", "final", "draft", "new", "v1", "update"]
suffix = ''.join(random.choices(string.ascii_lowercase + string.digits, k=4))
return f"{random.choice(prefixes)}_{random.choice(middles)}_{suffix}.{ext}"
def save_to_file(self):
"""保存结果到文件"""
content = self.result_text.get(1.0, tk.END)
if content.strip():
with open("generated_filenames.txt", "w", encoding="utf-8") as f:
f.write(content)
messagebox.showinfo("成功", "文件已保存到 generated_filenames.txt")
else:
messagebox.showwarning("警告", "没有要保存的内容")
if __name__ == "__main__":
root = tk.Tk()
app = FilenameGeneratorGUI(root)
root.mainloop()
简单命令行版本
#!/usr/bin/env python3
# 简单版本 - 一行命令生成
import random
import string
import sys
def simple_generate(count=10, ext=".txt"):
"""简单生成随机文件名"""
for i in range(count):
# 8位随机字母数字
random_name = ''.join(random.choices(string.ascii_lowercase + string.digits, k=8))
print(f"{random_name}{ext}")
if __name__ == "__main__":
# 命令行参数:数量 扩展名
args = sys.argv[1:]
count = int(args[0]) if len(args) > 0 else 10
ext = args[1] if len(args) > 1 else ".txt"
simple_generate(count, ext)
使用方法
-
Python 版本:
python3 random_names.py
-
Bash 版本:
chmod +x random_names.sh ./random_names.sh
-
GUI 版本:
python3 gui_names.py
-
简单命令行版本:
python3 simple_gen.py 20 .txt
功能特点
- ✅ 自定义生成数量
- ✅ 多种命名规则(时间戳、UUID、随机单词等)
- ✅ 支持自定义扩展名
- ✅ 保存到文件功能
- ✅ GUI版本可视化操作
您可以根据需要选择合适的版本,需要我修改某些特定功能吗?
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播