Acer1968

Pomoc Dominik

Jan 4th, 2022 (edited)
931
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.96 KB | None | 0 0
  1. """CLI nástroj pro vyhledávání řádků se zadanými slovy"""
  2. import argparse
  3.  
  4. def read_file(args):
  5.     """Načte zadaný soubor a převede ho na seznam, kde každý prvek obsahuje právě jednu řádku ze souboru.
  6.    
  7.    Vstup: args; což je výstup funkce parse_args() od definovaného parseru
  8.  
  9.    Výstup: seznam všech řádků v souboru definovaném jako args.filename
  10.    """
  11.     try:
  12.         list_file = []
  13.         with open(args.filename, 'r') as file:
  14.             for line in file.read().splitlines():
  15.                 list_file.append(line)
  16.  
  17.         if args.search is None:
  18.             with open(args.filename, 'r') as file:
  19.                 count = 0
  20.                 for line in file.read().splitlines():
  21.                     count += 1
  22.                     print(count,":", line)
  23.  
  24.     except TypeError:
  25.         print("Error: Insert a filename")
  26.  
  27.     except FileNotFoundError:
  28.         print("Error: Wrong file name")
  29.  
  30.     return list_file
  31.  
  32.  
  33.  
  34.  
  35. def search(a_file):
  36.     # a_file = read_file(args)
  37.     """Načte zadaná slova a vrátí řádky, které slova obsahují"""
  38.     list_ = []
  39.     w_count = 0
  40.     try:
  41.         for searched_word in args.search:
  42.             for compared_sentence in a_file:
  43.                 if searched_word in compared_sentence:
  44.                     list_.append(searched_word)
  45.                     print("Nalezena shoda: ", searched_word, "is in", compared_sentence)
  46.             w_count += 1
  47.  
  48.     except TypeError:
  49.         pass
  50.  
  51.  
  52. if __name__ == '__main__':
  53.     parser = argparse.ArgumentParser(description='Nástroj k vyhledávání řádků se slovy')
  54.     parser.add_argument("-f", "--filename", type=str, help="Předá soubor k vyhledávání, v případě nezadaných slov k vyhledání vypíše soubor")
  55.     parser.add_argument("-s", "--search", nargs="+", help="Nalezne všechny řádky se zadanými slovy")
  56.     args = parser.parse_args()
  57.  
  58.     file_for_searching = read_file(args)
  59.     search(file_for_searching)
Add Comment
Please, Sign In to add comment