On 2/1/19 3:48 PM, Steven D'Aprano wrote: > On Fri, Feb 01, 2019 at 02:38:43PM -0600, Dan Sommers wrote: > >> So why not turn that around? ksh (since way back when) and >> bash (since 2008, according to what I read somewhere online) >> have "co-processes," which allow you to run a command "in >> the background," and send commands and receive replies from >> it. So I tried it with Python, but it didn't work: >> >> $ coproc P3 { python3; } >> $ echo 'import sys; print(sys.version)' >&${P3[1]} >> $ read v <&${P3[0]} >> [the read command just waits forever] > > This is another good example of the problem James was referring to in > the thread about clearer communication. Don't assume we all know what > coproc does.
As I indicated in what you quoted, shell co-processes allow you to run a command in the background and interact with that command from your shell. >> A pile of experiments and examples from web pages later, I >> think it's Python and not me. My example, with suitable >> changes to the literal in the echo command, works with sbcl >> and erl, but not python3. If I start python3 as follows: > > What are sbcl and erl? > > I'm guessing you don't mean antimony pentachloride and a municipality in > Austria. Possibly Steel Bank Common Lisp and Erlang? But I'm not > confident about that. Yes, the Steel Bank Common Lisp and Erlang REPLs, respectively. > Does your example work with more well-known interpreted languages with > interactive interpreters such as Ruby, Lua, Javascript (outside of the > browser), etc? I don't know (I don't write software in any of those languages, and I don't have them imstalled on my computer), but adding the "-i" flag to my python3 command makes it work (thanks to ChrisA for suggesting "-u"; it was a short leap from there to "-i.") Dan _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/