[GRASS-dev] python and GRASS_MESSAGE_FORMAT
Jachym Cepicky
jachym.cepicky at centrum.cz
Sun Nov 26 03:09:42 EST 2006
On Sat, Nov 25, 2006 at 09:02:38PM -0500, Daniel Calvelo wrote:
> Hi Jachym. This looks like a buffered vs. unbuffered stream problem.
>
> Looking at lib/gis/percent.c, the output of (the G_percent calls of)
> r.los should flush at every write so if you try to popen in unbuffered
> mode, you should get what you need: try os.popen("your_cmd","r",0).
>
> HTH, Daniel.
>
thanks for this hint, but it does not seem, that it would help.
behaviour remain same:
import os
os.putenv("GRASS_MESSAGE_FORMAT","gui")
f = os.popen("r.los --o in=elevation.dem out=tmp \
coordinate=603067.6875,4925297.0625 max_dist=10000 2>&1","r",0)
try:
for line in f:
print line
finally:
f.close()
jachym
> On 11/25/06, Jachym Cepicky <jachym.cepicky at centrum.cz> wrote:
> >On Sat, Nov 25, 2006 at 06:56:14PM +0000, Glynn Clements wrote:
> >> The documentation for the readlines() method says:
> >>
> >> readlines([sizehint])
> >>
> >> Read until EOF using readline() and return a list containing the
> >> lines thus read. If the optional sizehint argument is present,
> >> instead of reading up to EOF, whole lines totalling approximately
> >> sizehint bytes (possibly after rounding up to an internal buffer
> >> size) are read. Objects implementing a file-like interface may
> >> choose to ignore sizehint if it cannot be implemented, or cannot
> >> be implemented efficiently.
> >>
> >> The "until EOF" means that it isn't going to return until the command
> >> has completed.
> >>
> >> > Could somebody help me, how to do it? Could you point me to tcl code,
> >> > which must solve this problem too?
> >>
> >> Looking at the Python docs, you probably want something like:
> >>
> >> f = os.popen("r.los in=elevation.dem out=tmp 2>&1")
> >> try:
> >> for line in f:
> >> print line
> >> finally:
> >> f.close()
> >
> >thanks, Glynn, but it does not seem to work - or it works the same way,
> >like readlines() does.
> >
> >I have in the script:
> >
> >import os
> >os.putenv("GRASS_MESSAGE_FORMAT","gui")
> >
> >f = os.popen("r.los --o in=elevation.dem out=tmp \
> > coordinate=603067.6875,4925297.0625 max_dist=10000 2>&1")
> >try:
> > for line in f:
> > print line
> >finally:
> > f.close()
> >
> >result is, lines are printed. but _after_ r.los finished it's
> >calcualtions..
> >
> >do I understand something wrong?
> >
> >thanks
> >
> >jachym
> >
> >--
> >Jachym Cepicky
> >e-mail: jachym.cepicky at centrum.cz
> >URL: http://les-ejk.cz
> >GPG: http://www.les-ejk.cz/pgp/jachym_cepicky-gpg.pub
> >-----------------------------------------
> >OFFICE:
> >Department of Geoinformation Technologies
> >Zemedelska 3
> >613 00, Brno
> >Czech Republick
> >e-mail: xcepicky at node.mendelu.cz
> >URL: http://mapserver.mendelu.cz
> >Tel.: +420 545 134 514
> >
> >
> >-----BEGIN PGP SIGNATURE-----
> >Version: GnuPG v1.4.3 (GNU/Linux)
> >
> >iD8DBQFFaJyXyKt0uAjU4I8RAmlTAKDUnIxJiatd2h/kU/OGv/LI/I1NSQCgn9BJ
> >1yFsraD4e8VY3nEZeozW3JM=
> >=K8gc
> >-----END PGP SIGNATURE-----
> >
> >
> >_______________________________________________
> >grass-dev mailing list
> >grass-dev at grass.itc.it
> >http://grass.itc.it/mailman/listinfo/grass-dev
> >
> >
>
>
> --
> -- Daniel Calvelo Aros
>
> _______________________________________________
> grass-dev mailing list
> grass-dev at grass.itc.it
> http://grass.itc.it/mailman/listinfo/grass-dev
--
Jachym Cepicky
e-mail: jachym.cepicky at centrum.cz
URL: http://les-ejk.cz
GPG: http://www.les-ejk.cz/pgp/jachym_cepicky-gpg.pub
-----------------------------------------
OFFICE:
Department of Geoinformation Technologies
Zemedelska 3
613 00, Brno
Czech Republick
e-mail: xcepicky at node.mendelu.cz
URL: http://mapserver.mendelu.cz
Tel.: +420 545 134 514
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.osgeo.org/pipermail/grass-dev/attachments/20061126/76369a03/attachment.bin
More information about the grass-dev
mailing list