Python 脚本:查找包含非标准字符的文件名和目录

此脚本递归打印名称中包含不属于 Unicode 基本拉丁或 Latin-1 补充块字符的文件和目录名。

find_invalid_filenames.py
#!/usr/bin/env python3
import os
import argparse

def is_valid_char(c):
    """检查字符是否在 Unicode 基本拉丁或 Latin-1 补充块内。"""
    return '0000' <= f"{ord(c):04x}" <= '00ff'

def contains_invalid_chars(name):
    """检查字符串是否包含基本拉丁或 Latin-1 补充块之外的字符。"""
    return any(not is_valid_char(c) for c in name)

def check_directory(path):
    """递归检查目录和文件名中是否包含无效字符。"""
    for root, dirs, files in os.walk(path):
        for name in dirs + files:
            if contains_invalid_chars(name):
                print(os.path.join(root, name))

def main():
    parser = argparse.ArgumentParser(description="检查名称中包含无效字符的文件和目录。")
    parser.add_argument('path', type=str, help="要检查的目录路径。")

    args = parser.parse_args()

    if not os.path.isdir(args.path):
        print(f"路径 {args.path} 不是有效目录。")
        return

    check_directory(args.path)

if __name__ == "__main__":
    main()

按类别查看类似文章: Python