<div dir="ltr">Thank you! The <span class="" style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px;color:rgb(0,0,0)">grass.script.overwrite() function was the one I was looking for. :)</span></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Thu, Apr 11, 2013 at 1:00 PM, Glynn Clements <span dir="ltr"><<a href="mailto:glynn@gclements.plus.com" target="_blank">glynn@gclements.plus.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
Johannes Radinger wrote:<br>
<br>
> I would like to check if the file defined as output in a python script<br>
> already exists and fire an error when it exists and the overwrite flag is<br>
> not set. Furhtermore I'd like<br>
> to check this already in the beginning before all calculations in the<br>
> script are executed.<br>
<br>
</div>g.parser should do this automatically.<br>
<br>
If an option has "new" in the gisprompt field, G_parser() checks that<br>
either the file/map/etc doesn't exist or overwrite is enabled.<br>
<br>
The only time you should need to do this manually is if an output name<br>
isn't simply an option value (e.g. r.mapcalc's output maps are<br>
specified in the expression, r.rgb takes an output "template" to which<br>
it appends a .r/.g/.b suffix, etc).<br>
<div class="im"><br>
> I thought about something like:<br>
><br>
> output = options['output']<br>
>     if (grass.find_file(name = output, element = 'cell')['file'] and<br>
> grass.read_command("g.gisenv", get = "GRASS_OVERWRITE")!=1):<br>
>         grass.fatal(_("Output file exists already, either change output<br>
> name or set overwrite-flag"))<br>
><br>
> but what is the correct way to get the information if the overwrite flag is<br>
> set<br>
> or not for that script? The GRASS-OVERWRITE variable is not set although<br>
> the script is launched with --overwrite. So how to get this info?<br>
<br>
</div>The grass.script.overwrite() function returns True if overwrite is<br>
enabled. Also, os.environ['GRASS_OVERWRITE'] will have been set to '1'<br>
by grass.script.parser() so that the overwrite status propagates down<br>
to any commands executed by the script.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Glynn Clements <<a href="mailto:glynn@gclements.plus.com">glynn@gclements.plus.com</a>><br>
</font></span></blockquote></div><br></div>