我尝试在npyscreen中输入后运行一个函数,尝试了一些操作,但仍然卡住了。只是退出npyscreen并返回到bash屏幕。该功能应该启动看门狗/ rsync监视文件夹,以等待文件备份。
#!/usr/bin/env python
# encoding: utf-8
import npyscreen as np
from nextscript import want_to_run_this_function
class WuTangClan(np.NPSAppManaged):
def onStart(self):
self.addForm('MAIN', FormMc, name="36 Chambers")
class FormMc(np.ActionFormExpandedV2):
def create(self):
self.rza_gfk = self.add(np.TitleSelectOne, max_height=4, name="Better MC:", value=[0], values=["RZA", "GhostFace Killah"], scroll_exit=True)
def after_editing(self):
if self.rza_gfk.value == [0]:
want_to_run_this_function()
self.parentApp.setNextForm(None)
else:
self.parentApp.setNextForm(None)
if __name__ == "__main__":
App = WuTangClan()
App.run()
答案 0 :(得分:0)
我不确定我是否正确理解了你想要的东西。
对于执行我喜欢使用子进程模块的任何类型的bash命令,他都有Popen构造函数,您可以使用该构造函数从bash运行任何东西。
例如在Windows上
import subprocess
process = subprocess.Popen(['ipconfig','/all'])
在类似Unix的系统上:
import subprocess
process = subprocess.Popen(['ip','a'])
如果您有一个“ .py”文件,则可以传递参数,就像在终端上运行该文件一样。
例如
import subprocess
process = subprocess.Popen(['python3','sleeper.py'])
您甚至可以检索进程pid并随时将其杀死,您可以查看子进程模块文档here