Make pathlib.glob () и pathlib.rglob ().Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Make pathlib.glob () и pathlib.rglob ().

Сообщение Anonymous »

Я использую pathlib.glob () и pathlib.rglob () для сопоставления файлов из каталога и его подкаталогов соответственно. Целевые файлы оба являются более низким. В соответствии с файлами были прочитаны из файловой системы следующим образом: < /p>

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

import pathlib

directory = pathlib.Path()
files_to_create = ['a.txt', 'b.TXT']
suffixes_to_test = ['*.txt', '*.TXT']

for filename in files_to_create:
filepath = directory / filename
filepath.touch()

for suffix in suffixes_to_test:
files = [fp.relative_to(directory) for fp in directory.glob(suffix)]
print(f'{suffix}: {files}')
Большая часть кодовой базы была разработана на машине Windows 10 (запуск Python 3.7.4) и теперь была перемещена в Macos Monterey 12.0.1 (запуск Python 3.10.1).
В Windows оба файла A.txt и B.txt соответствуют шаблонам:

и b.txt

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

*.txt: [WindowsPath('a.txt'), WindowsPath('b.TXT')]
*.TXT: [WindowsPath('a.txt'), WindowsPath('b.TXT')]
< /code>
Напротив, MacOS только один файл соответствует каждому шаблону: < /p>
*.txt: [PosixPath('a.txt')]
*.TXT: [PosixPath('b.TXT')]
< /code>
Поэтому я предполагаю, что файловая система macOS может быть чувствительна к случаям, а Windows One-нет. Согласно руководству пользователя Apple, используемая файловая система macOS не должна быть чувствительной к случаям по умолчанию по умолчанию, но может быть настроена как таковая.
Что-то подобное может применяться для файловых систем Linux или Unix, как обсуждалось здесь и здесь. быть чем -то вроде этого: < /p>
results = set([fp.relative_to(directory) for suffix in suffixes_to_test for fp in directory.glob(suffix)])
< /code>
, который дает нужный вывод как на macOS, так и на Windows: < /p>
{PosixPath('b.TXT'), PosixPath('a.txt')}
< /code>
Однако есть более элегантный способ? Я не смог найти какую -либо вариант, например, игнорировать_КАЗА 
в документации Pathlib.

Подробнее здесь: https://stackoverflow.com/questions/714 ... agnostic-a
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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