[GRASS-user] Error running r.reclass in python script with stdin

Moritz Lennert mlennert at club.worldonline.be
Tue Mar 6 05:57:25 EST 2012


On 06/03/12 11:42, Johannes Radinger wrote:
> Hi,
>
> I try to run a python script including the r.reclass command with stdin.
> I am running GRASS 6.5.svn50782M (2012) on a Mac OSX. The part of the script is:
>
> 	grass.run_command("r.reclass",
> 					input = "Treene_tmp_mask1",
> 					rules = "-",
> 					stdin = '1 thru 999 = 1 1',
> 					output = "Treene_mask_2")
>
> and the error:
> Traceback (most recent call last):
>    File "/Users/Johannes Radinger/Desktop/SDM_V2R.py", line
> 92, in<module>
>      sys.exit(main())
>    File "/Users/Johannes Radinger/Desktop/SDM_V2R.py", line
> 68, in main
>      output = "Treene_mask_2")
>    File "/Applications/GRASS-6.5.app/Contents/MacOS/etc/pytho
> n/grass/script/core.py", line 189, in run_command
>      ps = start_command(*args, **kwargs)
>    File "/Applications/GRASS-6.5.app/Contents/MacOS/etc/pytho
> n/grass/script/core.py", line 177, in start_command
>      return Popen(args, **popts)
>    File "/Applications/GRASS-6.5.app/Contents/MacOS/etc/pytho
> n/grass/script/core.py", line 56, in __init__
>      startupinfo, creationflags)
>    File "/Library/Frameworks/Python.framework/Versions/2.6/li
> b/python2.6/subprocess.py", line 616, in __init__
>      errread, errwrite) = self._get_handles(stdin, stdout,
> stderr)
>    File "/Library/Frameworks/Python.framework/Versions/2.6/li
> b/python2.6/subprocess.py", line 973, in _get_handles
>      p2cread = stdin.fileno()
> AttributeError: 'str' object has no attribute 'fileno'
>
>
> What I am doing wrong or is there a bug in the code?

You have to use grass.write_command to be able to use stdin.

Moritz


More information about the grass-user mailing list