【发布时间】:2019-09-12 21:34:15
【问题描述】:
我正在尝试返回特定位置中所有文件和子文件夹的列表。我的代码如下:
from pathlib import Path
FOLDER_PATH = Path(r'C:\long\file\path\of\138\characters\')
我收到错误:
FileNotFoundError: [WinError 3] The system cannot find the path specified:
错误发生在文件夹路径上,而不是文件上,所以我不确定这是否是原因。
当我手动进入文件夹并尝试打开其中的PDF 时,我收到“打开此文档时出错。找不到此文件。”
同样,当我尝试打开 XLSX 文件时,我得到“无法访问此文件。请尝试以下操作之一:(确保它存在,不是只读的,不超过 218字符等)”
此文件夹中的文件路径肯定超过 218 个字符,我理解这可能是 Excel 的问题,但我不明白为什么 pathlib.Path.rglob 列出它们会有问题,有人明白吗? ?
但是,如果我使用 CMD (dir /s /b > files.txt),我可以获取列表。
此外,如果我随后在 python 中将files.txt 导入Path 对象列表paths 并尝试执行[x.is_file() for x in paths],它将无法正确地将一些较长的路径识别为文件。
我已验证,如果我在本地复制目录(存在更短的路径),Excel 和pathlib.Path.rglob 可以访问这些文件。
可以做些什么来解决这个问题,为什么它首先会成为一个问题?
【问题讨论】:
-
Microsoft documentation 表示 Windows API 中大多数函数的最大路径长度为 260 个字符。
标签: python python-3.x path pathlib