Skip to content

Instantly share code, notes, and snippets.

@Ajnus
Last active February 23, 2024 14:16
Show Gist options
  • Save Ajnus/3c5de034228987b7892fe3178210ce42 to your computer and use it in GitHub Desktop.
Save Ajnus/3c5de034228987b7892fe3178210ce42 to your computer and use it in GitHub Desktop.
Download and save large test cases to text files locally with Hackerrank's folder structure.
# original by https://gist.github.com/ankurchaudhary627/9bb4dd65f96b10d9e7999a6f73ecb0fd
import requests
PROBLEM = "Birthday Cake Candles" # custom
TESTCASESFOLDER = f"Prepare/Algorithms/Warmup/{PROBLEM}/test cases" # insert yours
# INPUT AND OUTPUT URL'S OF GIVEN TESTCASE
URL_ARRAY=["https://hr-testcases-us-east-1.s3.amazonaws.com/23074/input01.txt?response-content-type=text%2Fplain&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAR6O7GJNX5DNFO3PV%2F20240223%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240223T140116Z&X-Amz-Expires=7200&X-Amz-SignedHeaders=host&X-Amz-Signature=7b4b0012e946f213270af147191aabf43ecccd1acbabd216385b51f986553173",
"https://hr-testcases-us-east-1.s3.amazonaws.com/23074/output01.txt?response-content-type=text%2Fplain&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAR6O7GJNX5DNFO3PV%2F20240223%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240223T140148Z&X-Amz-Expires=7200&X-Amz-SignedHeaders=host&X-Amz-Signature=a5d8ba5118bca4fc3600818cd423fd9417e25265ad194ab01861a7cd5adc674c"]
print(f"----------------------\n{PROBLEM}: ")
for url in URL_ARRAY:
URL = url
# MAKE USE OF THE URL TO CREATE FILES WITH HACKERRANK'S FOLDER STRUCTURE
number_index = next((i for i, c in enumerate(URL[53:]) if c.isdigit()), None)
mode = URL[53:53 + number_index] # 'input/output'
case_number = URL[53 + number_index:53 + number_index + 2] # 'XX' right after
FILEPATH = f"{TESTCASESFOLDER}/{mode}/{mode}{case_number}.txt"
# GET THE DATA FROM URL
r = requests.get(URL)
# SAVE IT IN LOCAL FILE
with open(FILEPATH, 'wb') as f:
f.write(r.content)
print(f"{mode}{case_number} done")
print("----------------------")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment