在Python中创建路径长度超过260个字符的目录

问题描述 投票:0回答:2

这个问题与this非常相似,但针对的是Python而不是powershell。 herehere也对此进行了讨论,但没有发布任何可行的解决方案。

那么,有没有办法在Python中创建一个目录来绕过Windows上的260个字符的限制?我尝试了多种前置

\\?\
的方法,但无法使其工作。

特别是下面最明显的代码

path = f'\\\\?\\C:\\{"a"*300}.txt'
open(path, 'w')

因错误而失败

OSError: [Errno 22] Invalid argument: '\\\\?\\C:\\aaaaa<...>aaaa.txt'
python-3.x windows filesystems
2个回答
3
投票

感谢 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')

0
投票

我遇到了限制问题,我禁用了这个限制,因为 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

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.