如果我接管pixmap = QtGui.QPixmap()
pixmap.loadFromData(blob)
,则使用交互式Python脚本启动控制台GUI,例如stdout
或curses
;在完成一些操作并关闭循环后,我如何urwid
到cd
中打印的路径?
例如,
stdout
运行时,按import sys
import urwid
def check_for_q(key):
if key in ('q', 'Q'):
raise urwid.ExitMainLoop()
txt = urwid.Text(u"Thanks for helping")
fill = urwid.Filler(txt, 'top')
loop = urwid.MainLoop(fill, unhandled_input=check_for_q)
loop.run()
sys.stdout.write('/usr/bin')
或q
退出Q
循环:
urwid
如果这是一个只打印到(py27) $ python curses_script.py
/usr/bin
(py27) $
的简单python脚本,我可以stdout
。但是,如上所述,这将挂起,因为python子shell无法劫持cd $(python simple_script.py)
并处理输入。
是否可以在不写入文件的情况下解决此问题?
答案 0 :(得分:0)
而不是做一些重击黑魔法,这可以很容易地完成,这是一个有效的解决方案
temp_file=$(mktemp /tmp/curses_script.XXXXXX)
python curses_script.py temp_file
# write to temp file in script...
cd $(cat temp_file)
rm $temp_file