Как определить, является ли путь к файлу Windows в Python?Python

Программы на Python
Ответить
Anonymous
 Как определить, является ли путь к файлу Windows в Python?

Сообщение Anonymous »

Мой модуль Python работает в среде Linux. Однако ему могут быть предоставлены данные, созданные в среде Windows, и, таким образом, данные могут содержать путь к файлу, специфичный для Windows, например:

Код: Выделить всё

>>> raw = "c:\\alpha\\bravo\\foo.txt"
Я могу обернуть этот путь в объект pathlib.PureWindowsPath, и это полезно. Я могу продолжать работу независимо от окружающей среды.

Код: Выделить всё

>>> from pathlib import PureWindowsPath
>>> pwp = PureWindowsPath( raw )
>>> pwp
PureWindowsPath('c:/alpha/bravo/foo.txt')
>>> pwp.as_posix()
'c:/alpha/bravo/foo.txt'
>>> pwp.parts
('c:\\', 'alpha', 'bravo', 'foo.txt')
>>> keep = pwp.parts[ pwp.parts.index( 'bravo' ) : ]
>>> keep
>>> ('bravo', 'foo.txt' )
Однако, как я могу определить, когда использовать PureWindowsPath?
Если я оберну путь просто объектом pathlib.PurePath, для этого будет создан производный PurePosixPath. Однако необработанное значение пути не интерпретируется должным образом; разделители каталогов не исправлены; путь неправильно разбит на части.

Код: Выделить всё

>>> from pathlib import PurePath
>>> pp = PurePath( raw )
>>> pp
PurePosixPath('c:\\alpha\\bravo\\foo.txt')
>>> pp.as_posix()
'c:\\alpha\\bravo\\foo.txt'
>>> pp.parts
('c:\\alpha\\bravo\\foo.txt',)
Существует ли какой-нибудь другой API-интерфейс pathlib, который может автоматически определять, когда необработанное значение пути содержит, как указано в документации, «семантику, подходящую для» Windows? Пока что я должен полагаться на человека, который решит это за меня и передаст аргумент моему модулю Python, который сообщит мне использовать PureWindowsPath.
Найдена документация:

Подробнее здесь: https://stackoverflow.com/questions/736 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»