Функция в Python для возврата первого точного совпадения из столбца в CSV с входной строкой - PullRequest
0 голосов
/ 31 марта 2019

Я хочу написать функцию на python, которая возвращает мне первое точное совпадение из столбца в csv и входную строку.

Это входные данные CSV. Заголовок - список лекарственных препаратов. Я хочу проверить 6 строк внутри входного файла (строки), и код должен вернуть первое точное совпадающее имя из списка лекарственных препаратов во входной строке.

Ключевые слова для проверки:

Drug product(s) list

solution for injection
suspension for injection
film-coated tablet
concentrate for solution for infusion
cream
modified-release tablet

Входная строка, где ключевые слова должны быть проверены:

 This supplemental application, submitted as a “Changes Being Effected” supplement, proposes  
the revisions in the incubation scheme for routine environmental monitoring of swab samples of film-coated tablet Alpuzim 
with the incubation scheme for contact plates. Also submission for Alpuzim cream is pending.

Функция должна возвращать только первое совпадение внутри файла, покрытого пленочной таблеткой. Цикл внутри входной строки должен прерваться, как только будет найдено первое совпадение

Это то, что я пробовал до сих пор:

import csv
def first_Occurrence(string):
    with open('C:\\Users\\Lenovo\\.spyder-py3\\unique_final_drug_products.csv', newline='', encoding ='utf-8') as myFile:

        reader = csv.reader(myFile)
        for row in reader:
            product = row[0].lower()

    for i in range(len(string)):
        i = i.lower()
        if(string[i] == product):
            return i
    return ('string not found')


a = first_Occurrence('we have a solution cream for back pain')
print(a)

Ответы [ 2 ]

1 голос
/ 31 марта 2019
import csv
from pathlib import Path

def first_occurrence(string):
    path = Path('C:/Users/Lenovo/.spyder-py3/unique_final_drug_products.csv')
    with path.open() as f:
        reader = csv.reader(f)
        for row in reader:
            if string.lower() in row[0].lower():
                return row


a = first_occurrence('we have a solution cream for back pain')
print(a)
0 голосов
/ 31 марта 2019

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

import csv

login = False
answer = input("Do you have an account?(yes or no) ")

if answer == 'yes' :
   with open('upassword.csv', 'r') as csvfile:
      csv_reader = csv.reader(csvfile)
      username = input("Player One Username: ")
      password = input("Player One Password: ")

      for row in csv_reader:
         print(row[0], row[1])
         print(username, password)
         if row[0]== username and row[1] == password:
            login = True
            break
         else:
            login = False
            break

   if login == True:
      print("You are now logged in!")
   else:
      print("Incorrect. Game Over.")
      exit()    
else:
   print('Only Valid Usernames can play. Game Over.')
   exit()

...