summaryrefslogtreecommitdiff
path: root/py04/ex1
diff options
context:
space:
mode:
authoryctct <yctct@yctct.com>2026-06-07 08:59:04 +0200
committeryctct <yctct@yctct.com>2026-06-07 08:59:04 +0200
commit15115b4c52bfda0d1cca9fa1155beecbb873ec35 (patch)
treeb3f0975e63eb04dcba732a78ce9bd9abda8acf01 /py04/ex1
First commit, add all files
Diffstat (limited to 'py04/ex1')
-rwxr-xr-xpy04/ex1/ft_archive_creation.py96
1 files changed, 96 insertions, 0 deletions
diff --git a/py04/ex1/ft_archive_creation.py b/py04/ex1/ft_archive_creation.py
new file mode 100755
index 0000000..2ae1612
--- /dev/null
+++ b/py04/ex1/ft_archive_creation.py
@@ -0,0 +1,96 @@
+#!/usr/bin/env python3
+
+import sys
+
+
+def read_content() -> None:
+ file = None
+ try:
+ file = open(sys.argv[1])
+ content = file.read()
+ print(f"Accessing file {sys.argv[1]}")
+ print("---")
+ print()
+ print(content)
+ except IndexError:
+ print("Usage: ft_ancient_text.py <file>")
+ except FileNotFoundError as e:
+ print(f"Error opening the file '{sys.argv[1]}':", e)
+ # trying to write when disk is full
+ # also catch permission errors
+ except OSError as e:
+ print(e)
+ # No permission to read or write
+ except PermissionError as e:
+ print(e)
+ # file encoded in a format other than UTF-8
+ except UnicodeDecodeError as e:
+ print(e)
+ except IsADirectoryError as e:
+ print(e)
+ finally:
+ if file:
+ file.close()
+ print("---")
+ print(f"File '{sys.argv[1]}' closed.")
+
+
+def new_perservation_protocol() -> None:
+ # give files a value so I can close them anyway
+ original_file = None
+ new_file = None
+ # create a list to store modified lines
+ data = []
+ try:
+ original_file = open(sys.argv[1], 'r')
+ print("Transform data")
+ print("---")
+ for line in original_file:
+ line = line.rstrip('\n')
+ line = line + "#"
+ data.append(line)
+ print(line)
+ original_file.close()
+ new_file_name = input("Enter a new file name (or empty): ")
+ if not new_file_name:
+ print("Not saving data")
+ else:
+ print(f"Saving data to '{new_file_name}'")
+ new_file = open(new_file_name, 'w')
+ for line in data:
+ new_file.write(line)
+ new_file.write('\n')
+ print(f"Date saved in file '{new_file_name}'")
+ new_file.close()
+ except IndexError:
+ print("No file to copy")
+ except FileNotFoundError as e:
+ print(f"Error opening the file '{sys.argv[1]}':", e)
+ # trying to write when disk is full
+ # also catch permission errors
+ except OSError as e:
+ print(e)
+ # No permission to read or write
+ except PermissionError as e:
+ print(e)
+ # file encoded in a format other than UTF-8
+ except UnicodeDecodeError as e:
+ print(e)
+ except IsADirectoryError as e:
+ print(e)
+ finally:
+ if original_file:
+ original_file.close()
+ if new_file:
+ new_file.close()
+
+
+def main() -> None:
+ print("=== Cyber Archives Recovery & Preservation ===")
+ read_content()
+ print()
+ new_perservation_protocol()
+
+
+if __name__ == "__main__":
+ main()