如何创建子流程“如果是”条件

问题描述 投票:0回答:1

因此,我创建了一个带有QLineedit的代码,并且在其下面有一个Qpushbutton。 click.connect指针包含一个子过程命令,它的处理方式如下(由于QLineedit和Qpushbutton并不那么重要,因此我只会放置click.connect指针)

def deluser(self):
    del1 = self.deluserline.text()
    del2 = subprocess.check_output(['userdel',del1)]
    self.deluserline.clear()
    #if a user is deleted, then it should display this:
    self.del3 = QMessageBox()
    self.del3.setText("User deleled !")
    self.del3.setWindowTitle('User delete')
    self.del3.setIcon(QMessageBox.Information)
    self.del3.show()

这确实有效。它可以删除您将在QLineedit中输入的用户,但是我想知道如何在此处创建if条件,如果子进程实际上找到要删除的用户,它将返回删除成功的QMessagebox,如果找不到用户删除它会显示“没有用户被删除”提示。

python ubuntu if-statement subprocess pyqt5
1个回答
0
投票

逻辑是验证用户是否存在以及是否被删除,因此我们可以实现现有用户指示的方法,然后进行比较:

def users():
    users = []
    result = subprocess.check_output(["cat /etc/passwd"], shell=True)
    for line in result.decode().splitlines():
        words = line.split(":")
        if words:
            users.append(words[0])
    return users
def deluser(self):
    user = self.deluserline.text()
    self.deluserline.clear()
    if user in users():
        subprocess.check_output(['userdel', user)]
        if user not in users():
            m = QMessageBox()
            m.setText("User deleled !")
            m.setWindowTitle('User delete')
            m.setIcon(QMessageBox.Information)
            m.show()
         else:
            print("User {} could not be deleted".format(user))
     else:
         print("User {} does not exist".format(user))
© www.soinside.com 2019 - 2024. All rights reserved.