Можете ли вы отсканировать каталог на предмет имени файла, чтобы определить тип файла? - PullRequest
0 голосов
/ 17 апреля 2020

Если у меня есть директор, как показано ниже:

1404202001-01.txt
1404202001-02.csv

Есть ли способ сначала отсканировать каталог на предмет имени 1404202001-01, чтобы потом обнаружить, является ли он текстовым файлом или файлом csv?

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Вы можете попробовать использовать pathlib:

from pathlib import Path

filename = "1404202001-01"

for path in Path('.').iterdir():
    if path.is_file() and path.stem == filename:
        print(f"{filename} is a {path.suffix} file")

Вывод:

1404202001-01 is a .txt file
  • pathlib.Path.iterdir перечисляет все файлы в каталоге. Использовал текущий рабочий каталог . в качестве примера.
  • pathlib.PurePath.stem получает имя файла из объекта пути.
  • pathlib.PurePath.suffix получает расширение от объекта пути.
  • pathlib.Path.is_file проверяет, является ли объект пути файлом.

Я считаю, что использовать pathlib гораздо проще, чем эквивалентные функции пути os и os.path. Наименование функций совсем другое, но определенно намного чище. Он также отличается от Python Standard Library , поэтому установка не требуется.

0 голосов
/ 17 апреля 2020

Используйте os, чтобы получить список имеющихся файлов:

import os
list = os.listdir("path")
print(list)

Затем с помощью os вы получите:

  • fileExtension

  • basename

Я не буду делать полный код, получу немного документации об этих 2 функциях и библиотеке os, и это должно быть легко;)

...