from msvcrt import getch; import os; def readBinFileName(filename): """function for reading some bin file, returns [bytes , (int)filesize]""" while True: try: binFile = open(filename, 'rb'); except FileNotFoundError: print("Cant find:" + filename); print('s - for skip file'); print('e - for leave program'); print('other - for try again'); temp = getch(); if temp == b's': return None; elif temp == b'e': return 0; else: continue; break; file_size = os.path.getsize(filename); result = [binFile.read(file_size), file_size]; binFile.close(); return result; # MAIN ----------------------------------------- descFileName = input('Enter discription file name: '); try: descFile = open(descFileName); except FileNotFoundError: print("Can't find " + descFileName); print('Finishing progaram!'); input(); res_file = open('result.bin', 'wb'); sizes_file = open('sfile.txt' , 'w'); while True: binName = descFile.readline(); if binName == '': break; file_data = readBinFileName(binName.strip()); if file_data == None: continue; elif file_data == 0: break; else: res_file.write(file_data[0]); sizes_file.writelines(hex(file_data[1]) + '\n'); print('saved as result.bin'); input(); descFile.close(); res_file.close(); sizes_file.close(); # MAIN -----------------------------------------