get_data.py import urllib.request import zipfile import os def download_quadgrams(): url = "http://practicalcryptography.com/media/cryptanalysis/files/english_quadgrams.txt.zip" zip_path = "quadgrams.zip" print("[1/3] Downloading 389,000 English quadgrams from Practical Cryptography...") try: urllib.request.urlretrieve(url, zip_path) print("[2/3] Extracting file...") with zipfile.ZipFile(zip_path, 'r') as zip_ref: zip_ref.extractall(".") # Clean up the zip file os.remove(zip_path) print("[3/3] Success! 'english_quadgrams.txt' is now in your folder.") print(" You can now re-run s.py!") except Exception as e: print(f"Error downloading: {e}") print("Please manually download from: http://practicalcryptography.com/cryptanalysis/text-characterisation/quadgrams/") if __name__ == "__main__": download_quadgrams()