# 创建脚本文件
cat > \~/Desktop/word_sorter.py << 'EOF'
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
单词按首字母排序工具
支持中英文、去重、大小写处理
"""
import re
import sys
def extract_words(text):
"""从文本中提取单词(支持中英文)"""
# 英文单词(字母开头)
english_words = re.findall(r'[A-Za-z]+', text)
# 中文单词(2-4个中文字符)
chinese_words = re.findall(r'[\u4e00-\u9fff]{2,4}', text)
return english_words + chinese_words
def sort_words(words, reverse=False, case_sensitive=False, remove_duplicates=True):
"""排序单词"""
# 去重
if remove_duplicates:
words = list(dict.fromkeys(words)) # 保持顺序的去重
# 排序
if case_sensitive:
words.sort(reverse=reverse)
else:
words.sort(key=str.lower, reverse=reverse)
return words
def group_by_first_letter(words):
"""按首字母分组"""
groups = {}
for word in words:
if word and word[0]:
first_char = word[0].upper() if word[0].isalpha() else word[0]
if first_char not in groups:
groups[first_char] = []
groups[first_char].append(word)
return groups
def main():
print("\n" + "="*50)
print("📝 单词按首字母排序工具")
print("="*50)
if len(sys.argv) < 2:
print("\n使用方法:")
print(" 1. 直接传入单词: python word_sorter.py apple banana cat")
print(" 2. 从文件读取: python word_sorter.py --file words.txt")
print(" 3. 交互模式: python word_sorter.py --interactive")
print("\n选项:")
print(" --reverse 降序排列")
print(" --case-sensitive 区分大小写")
print(" --no-dedupe 保留重复词")
print(" --group 按首字母分组显示")
print("\n示例:")
print(" python word_sorter.py apple Cat banana dog cat")
print(" python word_sorter.py 苹果 香蕉 橙子 葡萄")
print(" python word_sorter.py --group 北京 上海 广州 深圳")
print()
sys.exit(1)
# 解析参数
words = []
use_group = False
reverse = False
case_sensitive = False
remove_duplicates = True
args = sys.argv[1:]
if '--group' in args:
use_group = True
args.remove('--group')
if '--reverse' in args:
reverse = True
7w4.net提供免费和付费技能下载。
args.remove('--reverse')
if '--case-sensitive' in args:
case_sensitive = True
args.remove('--case-sensitive')
if '--no-dedupe' in args:
remove_duplicates = False
args.remove('--no-dedupe')
# 获取单词
if '--interactive' in args:
text = input("\n请输入单词或文本: ")
words = extract_words(text)
elif '--file' in args:
file_idx = args.index('--file')
if file_idx + 1 < len(args):
with open(args[file_idx + 1], 'r', encoding='utf-8') as f:
words = extract_words(f.read())
else:
# 直接传入单词
words = args
if not words:
print("❌ 未找到有效单词")
sys.exit(1)
# 排序
sorted_words = sort_words(words, reverse, case_sensitive, remove_duplicates)
# 输出结果
print(f"\n📊 输入单词数: {len(words)}")
if remove_duplicates and len(sorted_words) < len(words):
print(f"📊 去重后: {len(sorted_words)} 个")
print(f"\n{'='*50}")
print("📝 排序结果:")
print('='*50)
if use_group:
groups = group_by_first_letter(sorted_words)
for letter in sorted(groups.keys()):
print(f"\n【{letter}】({len(groups[letter])}个)")
for word in groups[letter]:
print(f" • {word}")
else:
for i, word in enumerate(sorted_words, 1):
print(f"{i:3}. {word}")
# 统计信息
print(f"\n{'='*50}")
print(f"📈 统计:")
print(f" 首字母分布: {len(group_by_first_letter(sorted_words))} 个字母")
if len(sorted_words) > 0:
print(f" 最长单词: {max(sorted_words, key=len)} ({len(max(sorted_words, key=len))}字符)")
print('='*50)
if __name__ == "__main__":
main()
EOF
# 赋予执行权限(Windows 不需要)
# chmod +x \~/Desktop/word_sorter.py
这个工具功能设计用心,支持多种输入方式,但代码质量存在明显问题。正则表达式有错误可能导致某些情况失效,文档不够完善,使用前可能需要自己调试修复。质量处于中等偏下水平,适合有经验的用户尝试。