Converting Bash scripts to Python
From GRASS-Wiki
This page contains some notes for the users who are converting their Bash script to Python.
Contents |
User break
In Bash:
# what to do in case of user break: exitprocedure() { g.remove rast=$TMP1 > /dev/null } # shell check for user break (signal list: trap -l) trap "exitprocedure" 2 3 15
In Python:
import sys import atexit import grass.script as grass def cleanup(): grass.run_command('g.remove', rast = tmp1) def main(): ... return 0 if __name__ == "__main__": options, flags = grass.parser() atexit.register(cleanup) sys.exit(main())
Discard warning/error messages
In Bash:
g.remove rast='map' 2>/dev/null
In Python:
import os import grass.script as grass nuldev = file(os.devnull, 'w+') grass.run_command('g.remove', rast = 'map', stderr = nuldev) nuldev.close()
Note: In GRASS 6.5+ set
export GRASS_MESSAGE_FORMAT=silent (in Bash) os.environ['GRASS_MESSAGE_FORMAT'] = 'silent' (in Python)