Package: ps3iso
PS3ISOCommand line tool and Python library for managing existing Playstation 3 and
Playstation Portable image filesInstallingpip install ps3isoDependenciesisoinfoisoinfoneeds to be in the system PATH in order to extract SFO data directly from .iso imagesWindows:https://smithii.com/files/cdrtools-latest.zipmacOS:brew install cdrtoolsLinux:brew install genisoimageQuick Program Helpusage: [-h] -i INPUT [-f FORMAT] [--rename]

optional arguments:
  -h, --help            show this help message and exit
  -i INPUT, --input INPUT
						Path to the ISO file or directory containing ISO files
  -f FORMAT, --format FORMAT
                        Format string to use for output or --rename target
  --rename              Rename .iso and supporting files to a format string
                        based on SFO metadataTo rename all ISO files, plus all files with a matching name to a nice format:$ps3iso-i/path/to/isos-f'%I-[%T]'--renameThis will rename.isofiles by reading the game's metadata. It will also find any files with the same name, but different extension. The file name will be based on the format string given by-fand the following variables are expanded:VariableParameter%aAPP_VER%aATTRIBUTE%CCATEGORY%LLICENSE%PPARENTAL_LEVEL%RRESOLUTION%SSOUND_FORMAT%TTITLE%ITITLE_ID%VVERSION%vPS3_SYSTEM_VERTherefore, the above command will look in/path/to/isosfor all ISO files (e.g.UnknownGame.iso) and rename it according to%I-[%T](e.g.BLES0000-[Game Title].iso)Additionally, all matching extra files (e.g.UnknownGame.png) will be renamed (e.g.BLES0000-[Game Title].png)Whennotrenaming files, the--formatargument will also expand additional variables:VariableParameter%fFile name%pFile full path\nNewline character\tTab characterThe following will output a JSON object for each file found:ps3iso-i/path/to/isos-f'{\n\t"file": "%F",\n\t"title": "%T",\n\t"ID": "%I"\n}'{"file":"/path/to/isos/UnknownGame.iso","title":"Game Title","ID":"BLES00000"}Quick Library ExamplesRenaming all ISO's in/path/to/iso/filestoBLES0000-[Game Title].isoformat:fromps3iso.gameimportGamegames=Game.search('/path/to/iso/files')Game.rename_all(list(games),'%I-[%T]')Print a JSON object per game containing file path, game title, and game id:fromps3iso.gameimportGameforgameinGame.search('.'):game.print_info('{"file":"%p", "title":"%T", "ID":"%I"}')Loop over all ISO files and matching associated files, and generate a new filename inGame Title [BLES0000].extformatfromps3iso.gameimportGamegames=Game.search('/path/to/iso/files')forgameingames:forfingame.files:print("Old name =%s"%f)print("New name =%s"%game.format_file(f,'%T [%I]'))Open an existing PARAM.SFO file and print all valid SFO attributes>>>fromps3iso.sfoimportSfoFile>>>withopen('test/data/PARAM.SFO','rb')asf:...	   sfo = SfoFile.parse(f)>>>forkey,valueinsfo:...print("%s=%r"%(key,value))APP_VER='01.00'ATTRIBUTE=32BOOTABLE=1CATEGORY='DG'LICENSE='Some example license text, Supports UTF8 glyphs like ©and ®.'PARENTAL_LEVEL=5PS3_SYSTEM_VER='02.5200'RESOLUTION=63SOUND_FORMAT=1TITLE='Example PS3ISO Game Title'TITLE_ID='BLES00000'VERSION='01.00'Read a specific attribute (TITLE_ID) from an existing PARAM.SFO>>>fromps3iso.sfoimportSfoFile>>>sfo=SfoFile.parse_file('test/data/PARAM.SFO')>>>print("Game ID =%s"%sfo.parameters.TITLE_ID)Game ID = BLES00000>>>print(sfo.format("Game Title = %T"))Game Title = Example PS3ISO Game TitleDevelopment - New releaseMake sure the tests pass and docs build:make coverage; make docUpdate the version number in setup.pyCreate a tag for the version e.g.:git tag v1.2.3Build and upload to PyPi:make upload