Как обойти ошибку os.path.commonprefix в Python?
Моя проблема - найти общийдорожка префикс заданного набора файлов.
Буквально я ожидал, что "os.path.commonprefix" сделает именно это. К сожалению, тот факт, чтоcommonprefix
находится вpath
довольно вводит в заблуждение, так как на самом деле будет искать строковые префиксы.
Вопрос для меня, как это может быть решено на пути? Проблема была кратко упомянута вэто (довольно высокий рейтинг) ответ но только в качестве сопутствующего замечания и предложенного решения (добавление косой черты к вводу commonprefix) у imho есть проблемы, так как он потерпит неудачу, например:
os.path.commonprefix(['/usr/var1/log/', '/usr/var2/log/'])
# returns /usr/var but it should be /usr
Чтобы другие люди не попали в ту же ловушку, возможно, стоит обсудить эту проблему в отдельном вопросе: существует ли простое / переносимое решение этой проблемы, которое не полагается на грязные проверки файловой системы (т. Е. Доступ к результату Commonprefix и проверьте, является ли это каталогом, и если нет, возвращаетos.path.dirname
результата)?