0

我在输入 npyscreen 后尝试运行一个函数,尝试了一些东西,但仍然卡住。只需退出 npyscreen 并返回到 bash 屏幕。这个函数应该启动一个 watchdog/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()
4

1 回答 1

0

我不确定我是否正确理解了您想要的内容。

为了执行我喜欢使用子进程模块的任何类型的 bash 命令,他有 Popen 构造函数,您可以使用它从 bash 运行任何东西。

例如,在窗户上

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 并终止它,您可以在此处查看子进程模块文档

于 2019-09-26T10:55:17.017 回答