В Python 2.7 я хочу найти и подсчитать файлы, которые имеют определенный список строк в имени файла.Как искать элементы списка внутри строк в Python
Список файлов:
- Passport_Mike.pdf
- Давид-Passport.pd
- Iain ID Card.pdf
- CopyPassport Michael.pdf
- Водительские права John.pdf
Я хочу рассчитать все файлы, в которых есть идентификатор «Passport'or».
В настоящее время я нашел способ, в котором я разбил имя файла на разные слова на основе разделителей (_-/'). Мои файлы не всегда можно найти, потому что файлы не всегда могут быть разделены, например, «CopyPassport Michael», потому что у него нет соответствующего разделителя, который разделяет «Паспорт» с «Копировать».
Мой код основан на this ответах, заданных в другом вопросе. Для этого кода я использую collections.Counter()
Вот мой код:
from collections import Counter
listOfFiles = [Passport_Mike.pdf, David-Passport.pdf, Iain ID Card.pdf, CopyPassport Michael.pdf, Driving License John.pdf]
searrchTermsList = ["Passport", ÏD']
def fileSplit(string, delimiters):
delimiters = tuple(delimiters)
stack = [string,]
for delimiter in delimiters:
for i, substring in enumerate(stack):
substack = substring.split(delimiter)
stack.pop(i)
for j, _substring in enumerate(substack):
stack.insert(i+j, _substring)
return stack
#This is a complicated split function but this method makes the files split into parts in my next function. Other split methods didn't work for me.
def searchTermsCount(listOfFiles, searchTermsList):
counts = Counter()
for myFile in listOfFiles:
myFileSplit = fileSplit(myFile,('_',' ','-','.'))
counts.update(word.upper() for word in myFileSplit)
myCount = 0
for word in searchTermsList:
myCount +=counts[word]
print "Count files:", myCount
Что такое метод Python 2.7 для подсчета файлов, которые имеют список строк в имени файла без использования разделителей?
здорово! Это простое решение отлично поработало! – Jelle