os.system()不起作用[Ubuntu 16.04],[Python 3.5.2]

问题描述:

下面是代码。当我在PyCharm(我的编辑器)中运行它时,一切正常,但是当我在终端中运行python脚本,然后输入数字时,除“Finished !!”外没有任何反应。打印。是的,我正在运行sudo的脚本。os.system()不起作用[Ubuntu 16.04],[Python 3.5.2]

# -*- coding: utf-8 -*- 
#!usr/bin/python 
import os 
import time 


print('==========================') 
print('==========================') 
print('1. Update System') 
print('2. Check IP-Address') 
print('3. Train') 
print('==========================') 
print('==========================') 

Nummer = input('What do you want to do?: ') 


def nummer1(): 
    if Nummer == '1': 
     print('System-Update is starting...') 
     time.sleep(2) 
     os.system("gnome-terminal -e 'sudo apt-get update'") 
nummer1() 

def nummer2(): 
    if Nummer == '2': 
     print('Checking IP-Address...') 
     time.sleep(2) 
     os.system("gnome-terminal -e 'sudo ifconfig'") 
nummer2() 

def nummer3(): 
    if Nummer == '3': 
     os.system("gnome-terminal -e 'sudo apt-get install sl && sl'") 
     time.sleep(1) 
     print('Get ready...') 
     time.sleep(2) 
nummer3() 
print('Finished!!') 
+2

我的猜测是,你从终端运行Python 2并且'input()'被计算为一个整数,所以你的if语句失败 –

+0

我在哪里可以看到这个以及如何改变它? – kolololol

+0

将输入显式转换为'str'或'int'并进行适当的比较。 –

使用蟒2你正在输入作为整数所以它的失败。

更改您的输入线:

Nummer = str(input('What do you want to do?: ')) 

OR

Nummer = raw_input('What do you want to do?: ') 

但是,如果你运行你的代码,这样

python3 fileName.py

我吨将起作用。