Initial commit: skills library
- 70 skills with code and documentation - Add .gitignore (ignore __pycache__, output/, temp/, venv/) - Clean up test intermediates and caches
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
乐谱文件质量检查工具
|
||||
检查文件大小、格式和完整性
|
||||
"""
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def check_file_quality(file_path, min_size=50000):
|
||||
"""
|
||||
检查单个文件的质量
|
||||
|
||||
Args:
|
||||
file_path: 文件路径
|
||||
min_size: 最小文件大小(字节)
|
||||
|
||||
Returns:
|
||||
dict: 质量检查结果
|
||||
"""
|
||||
path = Path(file_path)
|
||||
if not path.exists():
|
||||
return {"valid": False, "error": "文件不存在"}
|
||||
|
||||
size = path.stat().st_size
|
||||
suffix = path.suffix.lower()
|
||||
|
||||
result = {
|
||||
"valid": True,
|
||||
"file": str(path),
|
||||
"size": size,
|
||||
"format": suffix,
|
||||
"quality": "high" if size >= min_size else "low",
|
||||
}
|
||||
|
||||
# 格式检查
|
||||
if suffix not in [".png", ".jpg", ".jpeg", ".pdf", ".ly"]:
|
||||
result["valid"] = False
|
||||
result["error"] = f"不支持的文件格式: {suffix}"
|
||||
|
||||
# 大小检查
|
||||
if size < min_size:
|
||||
result["warning"] = f"文件较小 ({size} bytes),可能质量较低"
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def batch_check_directory(directory, min_size=50000):
|
||||
"""
|
||||
批量检查目录中的文件
|
||||
|
||||
Args:
|
||||
directory: 目录路径
|
||||
min_size: 最小文件大小阈值
|
||||
|
||||
Returns:
|
||||
list: 所有文件的检查结果
|
||||
"""
|
||||
results = []
|
||||
path = Path(directory)
|
||||
|
||||
if not path.exists():
|
||||
return [{"valid": False, "error": f"目录不存在: {directory}"}]
|
||||
|
||||
for file_path in path.glob("*"):
|
||||
if file_path.is_file():
|
||||
results.append(check_file_quality(file_path, min_size))
|
||||
|
||||
return results
|
||||
|
||||
|
||||
def print_report(results):
|
||||
"""打印质量检查报告"""
|
||||
total_files = len(results)
|
||||
valid_files = sum(1 for r in results if r.get("valid", False))
|
||||
high_quality_files = sum(1 for r in results if r.get("quality") == "high")
|
||||
|
||||
print(f"=== 乐谱质量检查报告 ===")
|
||||
print(f"总文件数: {total_files}")
|
||||
print(f"有效文件: {valid_files}")
|
||||
print(f"高质量文件: {high_quality_files}")
|
||||
print(f"低质量文件: {total_files - high_quality_files}")
|
||||
|
||||
print("\n--- 详细信息 ---")
|
||||
for result in results:
|
||||
status = "✅" if result.get("valid", False) else "❌"
|
||||
quality = result.get("quality", "unknown")
|
||||
print(f"{status} {result['file']} ({result['size']} bytes, {quality})")
|
||||
|
||||
if "warning" in result:
|
||||
print(f" ⚠️ {result['warning']}")
|
||||
if "error" in result:
|
||||
print(f" ❌ {result['error']}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print("用法: python quality_check.py <目录路径>")
|
||||
sys.exit(1)
|
||||
|
||||
directory = sys.argv[1]
|
||||
results = batch_check_directory(directory)
|
||||
print_report(results)
|
||||
Reference in New Issue
Block a user