[Python-ideas] Option of running shell/console commands inside the REPL
Terry Reedy
tjreedy at udel.edu
Fri Feb 1 16:15:06 EST 2019
On 2/1/2019 9:24 AM, Ken Hilton wrote:
> Hi,
>
> As a workaround/alternative, you can just do
>
> >>> import os
> >>> os.system('dir')
For repeated use within and between sessions, put 'from os import system
as oss' in a startup file. Then one only needs "oss('dir')". Note that
'dir' only works on Windows; the unix equivalent is 'ls'.
However this will not work in a gui IDE without special handling in the
IDE. This docstring for os.system says "Execute the command in a
subshell." (It should say "Execute the command in a subshell and return
the exitcode.") I presume that this docstring assumes that one is
running python is a system shell and that the subshell is a 'sub' of the
system shell.
Anyway, the subshell expects the output, in this case, a directory
listing, to go to an attached system console. If one enters the above
in IDLE's shell, the output does not appear in IDLE's shell. If one
started IDLE in a terminal with 'python(3) -m idlelib', it goes to that
terminal. Otherwise, it goes to a subshell which immediately closes and
which may or may not flash on the screen.
--
Terry Jan Reedy
More information about the Python-ideas
mailing list