Согласование ключа dict с текстовым файлом и возвращение теста Pass / fail

Неверное соединение SQL - это объединение пулов. (Max Pool Size = 100)

Вы можете настроить пул соединений из строки подключения.

Здесь вы можете найти дополнительную информацию о строке подключения из здесь .

0
задан Han 13 July 2018 в 03:38
поделиться

1 ответ

Попробуйте с этим:

list = sorted(key_words.keys(), key=lambda d: d[0])
with open('C:/Users-------/requirement.txt', 'r') as outfile:
    lines = outfile.readlines()
    for line in lines:
        line = line.strip()
        if line == '':
            continue

        # Create an empty list which will contain all the word that match
        words_found = []

        for word in list:
            # if the word match then add it to the list words_found
            if word in line:
                words_found.append(word)

        print("(\'Text:\',\"{}\"")' ".format(line))
        print("(\'Keys:\',\"{}\"")' ".format(words_found))

        # if the list of words found it's not empty then the test passed
        if(words_found):
            print("Test Passed")
        else:
            print("Test Failed")

идея состоит в том, чтобы создать список найденных слов, а затем распечатать их все, что я использую format Operation, и вы можете найти руководство о том, как его использовать здесь . И строка if(words_found): проверяет, пуст ли пул.

Дополнительные примечания

В этом случае вам это не понадобится, но если вы хотите решить только вторую точку, может использовать оператор for else, как описано в документах

4.4 break and continue Statement, а else Clause on Loops

Операторы цикла могут иметь условие else; он выполняется, когда цикл завершается исчерпанием списка (с for) или когда условие становится ложным (с показом), но не тогда, когда цикл завершается оператором break.

Уменьшая на одной вкладке отступ else else вашего оператора if, он стал else оператора for, поэтому он будет выполнен, только если для никогда не было разрыва проблема решена.

list = sorted(key_words.keys(), key=lambda d: d[0])
with open('C:/Users-------/requirement.txt', 'r') as outfile:
    lines = outfile.readlines()
    for line in lines:
        line = line.strip()
        if line == '':
            continue
        line_strings = line.split(' ')
        for word in list:
            if word in line:
                print(word)
                print("Test Pass")
                break
        else:
            print("Test Fail")
        print(line + "\n")

Изменить

Чтобы разбить ключ на описание и перевод, нам просто нужно разбить два слова в запятой со встроенной функцией split

list = sorted(key_words.keys(), key=lambda d: d[0])
with open('C:/Users-------/requirement.txt', 'r') as outfile:
    lines = outfile.readlines()
    for line in lines:
        line = line.strip()
        if line == '':
            continue

        # Create an empty list which will contain all the word that match
        words_found = []

        for word in list:
            description, translation = word.split(",")
            # if the word match then add it to the list words_found
            if description in line:
                words_found.append(description)

        print("(\'Text:\',\"{}\"")' ".format(line))
        print("(\'Keys:\',\"{}\"")' ".format(words_found))

        # if the list of words found it's not empty then the test passed
        if(words_found):
            print("Test Passed")
        else:
            print("Test Failed")
1
ответ дан Tommaso Fontana 17 August 2018 в 13:42
поделиться
  • 1
    Огромное спасибо вашему совету! Однако, хотя код работает, у меня есть одна проблема, которая нуждается в дополнительном совете. Как я уже сказал, «описание, перевод» является ключом, который должен быть согласован с текстом предложения, «В описании должен отображаться перевод XXX». Поскольку слова "описание" и "перевод" находятся в предложении, они должны возвращать «Test pass», но вместо этого «Test fail», результат вернется. – Han 17 July 2018 в 02:56
  • 2
    Из того, что я вижу, python распознает "описание, перевод" как один большой элемент в одном ключе, но они фактически являются двумя отдельными элементами (словами) в одном ключе. «Слово» функция, которую вы опубликовали, по-видимому, не совместима с этой проблемой, возможно, есть ли другой синтаксис (кроме слова «), который может быть использован в коде вместо этого? За ваш добрый совет, спасибо! – Han 17 July 2018 в 02:56
  • 3
    да, извините, я не понял этого вопроса, отредактировав его rn. – Tommaso Fontana 17 July 2018 в 06:27
  • 4
    Привет, доброе утро! Я пробовал модифицированный код, который вы добавили - – Han 20 July 2018 в 01:50
  • 5
    для слова в списке: description, translation = word.split (& quot;, & quot;) #, если совпадение слова затем добавить его в список words_found, если описание в строке: words_found.append (description) – Han 20 July 2018 в 01:51
Другие вопросы по тегам:

Похожие вопросы: