diff --git a/myzip_gremaud_tefridj.py b/myzip_gremaud_tefridj.py
new file mode 100644
index 0000000000000000000000000000000000000000..ca345a598b53cdc9df7dc28f3a8669454bdd7877
--- /dev/null
+++ b/myzip_gremaud_tefridj.py
@@ -0,0 +1,64 @@
+import gzip
+import hashlib
+import sys
+import math
+import os
+
+def read_file(file_name):
+    file = open(file_name, "rb")
+    file_open = file.read()
+    return file_open
+
+def write_file(file_name, data):
+    file = open(file_name, "wb")
+    file.write(data)
+    file.close()
+
+def hash(file):
+    return hashlib.sha1(file).hexdigest()
+
+def compression(input_file):
+    file = read_file(input_file)
+    hash_input_file = hash(file)
+    print('hash : {}'.format(hash_input_file))
+    compressed_value = gzip.compress(bytes(file))
+    out_file_name = os.path.splitext(input_file)[0] + '.gz'
+    f = gzip.open(out_file_name, 'wb')
+    f.write(compressed_value)
+    f.close()
+
+def decompression(input_file, out_file_name):
+    with gzip.open(input_file, "rb") as f:
+        data = f.read()
+    plain_string  = gzip.decompress(data)
+    write_file(out_file_name, plain_string)
+    test_checksum(out_file_name)
+    
+def test_checksum(out_file_name):
+    file = read_file(out_file_name)
+    hash_after = hash(file)
+    hash_before = str(input('veuillez entrer le hash du fichier avant compression : '))
+    if hash_after == hash_before:
+        print('tout est ok') 
+    else:
+        print('problème lors de la décompression')
+
+def test_size(input_file):
+    print("La taille du fichier est de : ")
+    print("taille en ko : {}".format(os.path.getsize(input_file)/1000))
+
+if len(sys.argv) > 1: # on test si on a spécifié un nom de fichier à trier
+    type_program = sys.argv[1]
+    input_file = sys.argv[2]
+    if os.path.exists(input_file) == True:
+            if type_program == '-c':
+                compression(input_file)
+            elif type_program == '-d':
+                out_file_name = sys.argv[3]
+                decompression(input_file, out_file_name)
+            else:
+                print('Paramètre non valide')
+    else:
+        print("Le fichier spécifié n'existe pas !") # message affiché si le fichier n'existe pas
+else:
+  print("Vous devez spécifié un nom de fichier !") # message affiché si il y a pas de fichier spécifié
\ No newline at end of file
diff --git a/test.pdf b/test.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..acae7d200358544af4f42ee43a6d39b96ccf377e
Binary files /dev/null and b/test.pdf differ
diff --git a/test.txt b/test.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b785fdf3f9c1c9fa63bc1ea3705bdfd91d34b5d7
--- /dev/null
+++ b/test.txt
@@ -0,0 +1 @@
+test compression
\ No newline at end of file