Seregon/PkgToolBox

Toolbox for analyzing and editing pkg application files for psp,ps3, ps4 and ps5, includes the most useful functions you might need.

Python/57.3 KB/No license
file_operations/extract.py
1import os
2 
3def extract_file(pkg_file, file_info, output_path, log_callback=None):
4 try:
5 with open(pkg_file, 'rb') as f:
6 f.seek(file_info['offset'])
7 data = f.read(file_info['size'])
8
9 os.makedirs(os.path.dirname(output_path), exist_ok=True)
10 with open(output_path, 'wb') as f:
11 f.write(data)
12
13 if log_callback:
14 log_callback(f"File extracted: {output_path}")
15
16 return output_path
17 except PermissionError as e:
18 if log_callback:
19 log_callback(f"Permission denied: {e}")
20 raise
21 except Exception as e:
22 if log_callback:
23 log_callback(f"An error occurred: {e}")
24 raise