работа с параметрами в терминале python
Написал программу для шифровки и расшифровки текста с помощью шифра Цезаря
(я программирую на Python часов 7, сильно не бейте)
import sys
import argparse
def createParser ():
parser = argparse.ArgumentParser()
parser.add_argument ('-s')
parser.add_argument ('-d')
parser.add_argument ('-p')
parser.add_argument ('-i')
parser.add_argument ('-o')
return parser
llst = ['а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я']
blst = ['А','Б','В','Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я']
def encryptCaesar(msg, shift):
ret = ""
for x in msg:
if x in llst:
ind = llst.index(x)
ret += llst[ind+shift]
elif x in blst:
ind = blst.index(x)
ret += blst[ind+shift]
else:
ret += x
return ret
def decryptCaesar(msg, shift):
ret = ""
for x in msg:
if x in llst:
ind = llst.index(x)
ret += llst[ind-shift]
elif x in blst:
ind = blst.index(x)
ret += blst[ind-shift]
else:
ret += x
return ret
if __name__ == '__main__':
parser = createParser()
namespace = parser.parse_args(sys.argv[1:])
sh = len(str(namespace.p))
#print (sh)
text = (namespace.i)
#print (str(sh) + text)
for l in text:
print(encryptCaesar(l, sh), end='')
#for l in text:
# print(decryptCaesar(l, sh), end='')
в реализации должны использоваться такие условия
параметр -s реализует шифрование,
параметр -d реализует дешифрование,
параметр -p определяее пароль,
параметр -i входной текст
параметр -o выходной текст
параметры -p, -i я реализовать смог. С остальными проблемы, поэтому прошу вас помочь.
пример запуска программы
./zadanie1 -s-p passw -i ужи_к -о шлн_п