Member 13309033 Ответов: 1

Проверить, существует ли строка в качестве ключа или значения в словаре Python?


Я создаю скребок / искатель для каталогов linux. по сути, программа будет принимать входные данные пользователей для startpoint (EX: /home/user/Pictures/) и endpoint (EX: /home/user/Pictures/), а также тип файла для поиска (именно здесь возникает мой вопрос)
Я храню приемлемые типы расширений файлов в словаре с вложенными списками, например:
file_types = {'audio': ['mp3', 'mpa'], 'images': ['png', 'jpg']}


если я сохраняю входные данные пользователей как переменную scrape_for, как я могу проверить, что строка в переменной scrape_for существует в словаре file_types?

Что я уже пробовал:

это мой текущий блок кода, который делает следующее:
1. Возьмите пользовательский ввод для начальной точки
2. Убедитесь, что startpoint является допустимым каталогом
3. Возьмите пользовательский ввод для конечной точки
4. проверка конечной точки является одновременно допустимым каталогом и подкаталогом начальной точки
5. параметры печати файла с расширениями для пользователей, чтобы выбрать из
import os
ftypes = {'audio': ['mp3', 'mpa', 'wpi', 'wav', 'wpi'], 'images': ['png', 'jpg', 'jpeg', 'gif', 'bmp'], 'text': ['txt', 'doc', 'pdf'], 'video': ['mp4', 'avi', '3g2', '3gp', 'mkv', 'm4v', 'mov', 'mpg', 'wmv', 'flv'], 'executable': ['apk', 'bat', 'bin', 'exe', 'py', 'wsf', 'com', 'cgi', 'pl']}

def UserInput():
#User inputs Start Point
    Spoint = input('Where to start: \n')
#check validity of input
    if os.path.isdir(Spoint):
        print('Scraping will begin at: ' + Spoint)
    elif not os.path.isdir(Spoint):
        print('Not a valid directory')
        exit()
#User input for End Point
    Epoint = input('\n\nWhat directory would you like to stop scraping at? \n')
# Check if Endpoint is a valid SubDirectory of the parent directory
    if os.path.isdir(Epoint) and len(Epoint) >= len(Spoint):
        print('\n\nScraping will end at: ' + Epoint)
    elif os.path.isdir(Epoint) or len(Epoint) >= len(Spoint):
        print('Error w/ End Point directory, make sure directory is formatted correly, and is a sub directory of your Starting Point')
        exit()

#User input for filetype
    for k,v in ftypes.items():
        print(k, v)
    ScrapeType = input('Please enter The extension youd like scraped: \n')

1 Ответов

Рейтинг:
2

Member 1091218

Предположим, вы ищете файл типа "png"
Правда, в ['PNG' в д В Д в ftypes.значения()]
вернет истину

для несуществующего типа файла
Правда, в ['ДИ' в д В Д в ftypes.значения()]
вернет False

Чтобы проверить наличие ключа
['аудио' в ftypes.ключи()] возвращает значение true

Чтобы проверить, как
Правда, в [Вход в д В Д в ftypes.значения()] или ввод в ftypes.ключи()