2016-10-01 6 views
3

Я использую glob для сканирования указанного каталога, чтобы найти все файлы, соответствующие указанному имени, но я не могу заставить его работать с файлами без расширения без найти файлы, соответствующие имени, а затем некоторые ...найти все файлы, соответствующие точному имени с расширением или без него

Например, вот некоторые файлы:
- файл
- file2
- file.dat

Полученный список должен быть:
[ 'file', 'file.dat' ]

Как я могу заставить glob работать должным образом?

ответ

0

Вскоре после публикации этого вопроса, я думал, что ответа на этот вопрос, но отказался от телефона, прежде чем я мог отправить его ...

Таким образом, вместо того, чтобы полагаться на Глоб найти королевском все файлы, имеют это только смотреть для файлов с расширениями.

Вот как проверить, если Glob даже необходимо:

path = 'subdirectory/filename' # no extension 

files = [ path ] # for consistancy 
if not os.path.exists(path): 
    files = glob('%s.*'%path) 
    if not files: 
     raise IOError("no files found") 

for f in files: 
    # do whatever 

Это должно работать с большинством имен, в том числе причудливо отформатированных имен.

+0

Не могу отметить, что это принято в настоящее время, и сомневаюсь, что я даже посмотрю на это через 2 дня, поэтому да, это был мой принятый ответ, прежде чем я даже разместил его. – Tcll