print(f'[ERROR] Something went wrong while extracting zip contents. Check the error message, get student id and download / organise manually\nError message: {e}')
files=[fforfinfilesif"__MACOSX"notinf]# filter out files with "__MACOSX" in the name
rar_ref.extractall(target_dir,files)# extract the remaining files
rar_ref.close()
exceptrarfile.BadRarFilease:
mark_file_as_BAD(rar_file,e)
exceptrarfile.NotRarFilease:
mark_file_as_BAD(rar_file,e)
exceptrarfile.RarCannotExecase:
print('[Error] Missing unrar tool\nfor Windows: make sure file UnRAR.exe exists in directory \'utils\'\nfor Linux/Mac: need to install unrar (check README)')
exit()
defextract_7z(seven_zip_file,target_dir):
try:# extract the 7z file using py7zr
withopen(seven_zip_file,'rb')asf:
seven_zip=SevenZipFile(seven_zip_file,mode='r')
ifnotseven_zip.getnames():
raiseexceptions.Bad7zFile
files=seven_zip.getnames()
files=[fforfinfilesif"__MACOSX"notinf]# filter out files with "__MACOSX" in the name
seven_zip.extract(target_dir,targets=files)# extract the remaining files
seven_zip.close()
exceptexceptions.Bad7zFilease:
mark_file_as_BAD(seven_zip_file,e)
exceptExceptionase:
mark_file_as_BAD(seven_zip_file,e)
defextract_file_to_dir(file_path,student_dir):
os.makedirs(student_dir,exist_ok=True)# create the subdirectory for student