[GRASS-dev] how to work around "Arument list too long" error in a GRASS python script ?

Nikos Alexandris nik at nikosalexandris.net
Thu Jun 11 10:02:15 PDT 2015


* Moritz Lennert <mlennert at club.worldonline.be> [2015-06-11 18:37:36 +0200]:

> Hello,
> 
> In a python script I have the following call:
> 
> grass.run_command('r.series',
>                     input = rate_maps,
>                     output = sum_rates,
>                     method = 'sum',
>                     overwrite = True,
>                     quiet=True)
> 
> rate_maps is a list which in one instance contains 8559 map names, 
> leading to an "OSError: [Errno 7] Argument list too long".
> 
> I know that in the shell I could use xargs to work around such a 
> problem. But how to do this in python ?

What it the OS limit for it?
> 
> I could obviously loop through all maps and thus sum them individually, 
> but this just seems horribly inefficient.
> 
> Does anyone have a better solution ?

- Maybe split in two or three sessions (instead of looping over all)?
- Have you seen this
<https://gist.github.com/max-nova/487a82de00651a33f2c2#file-grass_demo-py-L28>

Nikos


More information about the grass-dev mailing list