python win32 имя файла обходной путь - PullRequest
5 голосов
/ 24 августа 2010

Я обнаружил, что вы не можете open(filepath), если длина пути к файлу превышает 255 символов, даже если само имя файла имеет длину 10 символов (оставшаяся часть - путь к каталогу).обойти эту проблему?(python 2.6 на win32)

Ответы [ 2 ]

12 голосов
/ 24 августа 2010

Наиболее общий подход к этому состоит в том, чтобы префикс пути с \\\\?\\ ( ссылка ).Имейте в виду, что это отключает определенную предварительную обработку в пути, но ничего особенного в IMO.

Также могу отметить, что на 32-битной Windows Server 2003 с Python 2.7 мне приходилось использовать префиксный путь Unicode (u"\\\\\\\\?\\\\"префикс или ur"\\\\?\\"), поскольку (как указано в ссылка ) функции не-Unicode API могут по-прежнему ограничиваться длиной MAX_PATH, даже если используется префикс.

например, ur"\\\\?\\c:\temp\....\abc.txt"

0 голосов
/ 24 августа 2010

Решение на уровне ОС Windows заключается в использовании команды DOS SUBST для определения псевдодиска в определенном каталоге.

SUBST Q: C:\really\long\path\name\full\of\sub\directories

Затем вы можете получить доступ к файлам в этом каталоге как Q:filename.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...