Как искать файлы из списка? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть список

fileslist=[1.jpg,2.xml,3.png]

Я хочу найти файлы в списке в текущем рабочем каталоге, которые я пробовал

listingdir=os.getcwd()
for rootpath,directories,files in os.walk(listingdir):
    for file in fileslist:
        if file in files:
            print("file:{} found".format(file))

Я также пытался

list=(set(files).intersection(fileslist))

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

f=set(files)
print(f)
#result is
[[1.jpg,2.jpg,....],[1.png,2.png,...],[1.xml,2.xml,.......]]

Ответы [ 2 ]

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

Вы можете использовать os.path.isfile(...). Он проверит, существует ли определенный файл. Он может принимать только полный путь или имя файла (тогда он проверит, существует ли файл в текущем рабочем каталоге).

import os.path
fileslist=['1.jpg','2.xml','3.png'] # no, it won't work without the quotes! 
for f in fileslist:
    if os.path.isfile(f):
         print("file:{} found".format(f))
1 голос
/ 25 апреля 2020

Если вы хотите искать только в текущем каталоге, вы можете сделать что-то вроде:

files = [f for f in os.listdir() if os.path.isfile(f)]

fileslist = ['1.jpg','2.xml','3.png']
list = (set(files).intersection(fileslist))

Вывод:

{'1.png'}  # it wont always be this, just an example.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...