Converting Bash scripts to Python
Jump to navigation
Jump to search
This page contains some notes for the users who are converting their Bash script to Python.
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)