这个问题与this非常相似,但针对的是Python而不是powershell。 here和here也对此进行了讨论,但没有发布任何可行的解决方案。
那么,有没有办法在Python中创建一个目录来绕过Windows上的260个字符的限制?我尝试了多种前置
\\?\
的方法,但无法使其工作。
特别是下面最明显的代码
path = f'\\\\?\\C:\\{"a"*300}.txt'
open(path, 'w')
因错误而失败
OSError: [Errno 22] Invalid argument: '\\\\?\\C:\\aaaaa<...>aaaa.txt'
感谢 eryksun,我意识到我正在尝试创建一个名称太长的文件。经过一些实验,这就是如何在 Windows 上创建超过 260 个字符的路径(前提是文件系统允许):
from pathlib import Path
folder = Path('//?/c:/') / ('a'*100) / ('b'*100)
file = folder / ('c' * 100)
folder.mkdir(parents=True, exist_ok=True)
file.open('w')
我遇到了限制问题,我禁用了这个限制,因为 r'\?\' 没有帮助我。所以当我发现这个问题时,我想为其他人回答,我做了这个tutorial
本教程对我有帮助的是第二个解决方案,所以我将其写在这里: 输入搜索“gpedit.msc”并转到:计算机配置 > 管理模板 > 系统 > 文件系统。
您需要启用“启用Win32长路径”,关闭编辑器并重新启动计算机
另一个解决方案是通过注册表编辑器,它可以提供帮助: 在搜索栏中输入 regedit 并转到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
将键“LongPathsEnabled”更改为 1。或只需运行以下命令:
reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1
祝你好运!