首页 > 解决方案 > Python - 特殊字符导致 [错误 123] 文件名、目录名或卷标语法不正确

问题描述

我正在尝试编写一个 Python 脚本来递归搜索文件夹并处理其内容。它失败是因为某些子文件和子文件夹的名称中有一个特殊字符:'' 我在十六进制编辑器中查看了这个字符,它显示为字节 0x00。在 Windows 中,当我尝试在文件名中使用此字符时,它允许我并且不会抱怨它无效(它显示为“。”浮动在中间高度)

我编写了一个小脚本和一个虚拟文件夹 testDir 来演示这个问题:

它会导致错误:WindowsError: [错误 123] 文件名、目录名或卷标语法不正确:'../with_special_chars/testDir?/ '

import os

root_directory = r"../with_special_chars/"

def explore_folder(root_directory):
    for filename in os.listdir(root_directory):
        fullpath = os.path.join(root_directory, filename)
        print(fullpath)
        print(os.path.isdir(fullpath))
        print(os.path.exists(fullpath))

        if os.path.isfile(fullpath):
            print(fullpath)
        else:
            explore_folder(fullpath)

explore_folder(root_directory)

程序在打印错误之前的输出是:

../with_special_chars/testDir?
False
False

似乎 Python 无法读取目录,因为特殊字符被替换为“?” 然后生成的路径不再被识别为有效路径。有解决方法吗?我想避免更改许多文件和目录名称

标签: python

解决方案


推荐阅读