python - 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 无法读取目录,因为特殊字符被替换为“?” 然后生成的路径不再被识别为有效路径。有解决方法吗?我想避免更改许多文件和目录名称
解决方案
推荐阅读
- google-apps-script - 如何根据从 gmail 到 google 表格的标签获取单个电子邮件的正文
- firebase - 我可以通过两个字段查询firestore子集合吗
- python - 如何修复 Forbidden:在 praw 中收到 403 HTTP 响应?
- javascript - 如何使用 JSON 数据创建数组
- sql - 如果满足条件,Postgres 查询有条件地从记录子集中返回一个值
- r - 使用 testthat 对唯一性进行大规模测试
- java - 当我尝试使用 Volley 将图像从 Android 上传到 PHP 服务器时出现错误(JSONException)
- java - 如何从 Mule 4 中的文件中读取 JSON 字符串
- c++ - g++ 认为我的类声明是“前向声明”
- ssh - 创建时 .ssh 目录中存在什么?