-
Notifications
You must be signed in to change notification settings - Fork 0
/
caesar.py
executable file
·84 lines (54 loc) · 1.75 KB
/
caesar.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#! /usr/bin/env python
# coding: utf-8
import argparse
def encrypt_char(c, shift):
''' (str, int) -> str
Return character c shifted by shift places.
>>> encrypt_char("A", 1)
'B'
>>> encrypt_char("A", 2)
'C'
>>> encrypt_char("Z", 2)
'B'
'''
# your code here
def encrypt_string(string, shift):
''' (str, int) -> str
Returns a shifted version of string msg.
>>> encrypt_string("BOB", 1)
'CPC'
>>> encrypt_string("THIS IS A TEST", 4)
'XLMW MW E XIWX'
'''
# your code here
# Programme principal
if __name__ == "__main__":
import doctest
res = doctest.testmod()
print res
# On récupère les arguments du programme
# -d : spécifier le décallage
# -m : spécifier le fichier texte contenant le message
parser = argparse.ArgumentParser(description="encrypt_string code program")
parser.add_argument("-d", type=int, help="How to shift the message", required=True)
parser.add_argument("-m", type=str, help="Source File to encode", required=True)
args = parser.parse_args()
# On récupère le nom du fichier du message
msg_file = args.m
# On récupère le nom du fichier pour la version codée
enc_msg_file = "enc_" + msg_file
# Lecture du message
msg = ""
with open(msg_file, "r") as f:
msg = f.read()
# Normalisation, on passe tout en majuscule
msg = msg.upper()
# Récupère le décallage donné en paramètre du programme
d = args.d
# Lance la fonction de codage
msg_code = encrypt_string(msg, d)
# Affiche les 2 versions
print("Original : {}\nCode : {}".format(msg, msg_code))
# Ecrit dans un fichier le message codé
with open(enc_msg_file, "w") as f:
f.write(msg_code)