我正在尝试使用python打开程序。我的目标是在python启动子进程后使终端可用。
mutate
在终端中,我必须运行
import subprocess
subprocess.run(['feh', 'foo.png']) # locks program until I close the image = no go
subprocess.Popen('feh', 'foo.png']) # works but breaks new line in terminal
要修复,但是我看不到我在输入什么...
我尝试将其添加到程序的末尾:
$ stty sane
但没有喜悦。该程序仍会在退出时中断终端(如果我使用.run(),则会挂起终端机
我在多个linux平台上都遇到了这个问题,目前正在尝试扩展和使用Arch Linux&i3
其他人尝试都没有喜悦:
import atexit
def fixTerm():
subprocess.run(['stty', 'sane'])
atexit.register(fixTerm)
不确定下一步如何尝试。任何帮助将不胜感激。
这是破坏终端的整个程序。
subprocess.Popen(['feh', 'foo.png'], shell=True)
subprocess.Popen(['feh', 'foo.png'], shell=False)
subprocess.Popen(['feh', 'foo.png'],
stdout=subprocess.PIPE, universal_newlines=True)
我不确定这和“ A. Albershteyn”的解决方案之间的区别是什么,但这不会引起问题,上述程序可以。
答案 0 :(得分:0)
对我来说很好,feh
没有输出。 “换行”是什么意思?
~
➔ python -c "import subprocess; subprocess.Popen(['feh', '42.png'])"
~
➔ echo "feh is open"
feh is open
~
➔ echo "I closed it"
I closed it
~
➔