2017-08-01 290 views
0

我試圖在終端中執行Python腳本。在Mac終端上運行Python腳本

在Python shell中運行,它做它應該做的。它將在沒有錯誤的情況下運行,但在終端中執行時沒有任何反應

一旦找出這個問題,會有一個更有用的方法讓程序在終端中輸入'timeAide'&'cancelSleep'字符串並輸入Mac密碼。我計劃導入'pyautogui'來完成所有這一部分,但有更好的。

#!/usr/bin/env python 

#sleepAide: user enters a number to put the computer to sleep 
#command for sleep: sudo systemsetup -setcomputersleep 60 
#command to cancel sleep: sudo systemsetup -setcomputersleep Never . 

#check python version in terminal: python --version 
#shebang line: '#!/usr/bin/python3.6' 
#type " 'nano' nameFile.py" in terminal to view code Ex: 'nano namefile.py' 

class Sleep(object): 
    def __init__(self): 
     self.sleepAide() 


    def sleepAide(time):     
     timeAide = 'sudo systemsetup -setcomputersleep ' 
     cancelSleep = 'sudo systemsetup -setcomputersleep Never' 
     time = int(input('In how many minutes would you like to sleep? ')) 
     if time > 0: 
      print(timeAide+' '+str(time)) 
     elif time == -1: 
      print(cancelSleep) 
+2

那是整個腳本?與每個字符和**縮進**相同在您的文件? – jacoblaw

回答

0

您只聲明一個類和方法。您需要實例化要調用的__init__函數的類。您可以在腳本底部添加以下內容(類別定義之外):

Sleep() 

還有其他一些問題。

  • 你叫self.sleepAide()沒有time的說法,但它並不像你會需要它,因爲你通過input
  • 收集它你不會在sleepAide定義通過self但嘗試調用它,就好像它是一個實例方法

我做了以下幾個變化以獲得工作示例:

class Sleep(object): 

    def __init__(self): 
     self.sleepAide() 

    def sleepAide(self): 
     timeAide = 'sudo systemsetup -setcomputersleep ' 
     cancelSleep = 'sudo systemsetup -setcomputersleep Never' 
     time = int(input('In how many minutes would you like to sleep? ')) 
     if time > 0: 
      print(timeAide+' '+str(time)) 
     elif time == -1: 
      print(cancelSleep) 


Sleep() 

運行有以下幾點:

$ python test.py 
In how many minutes would you like to sleep? 10 
sudo systemsetup -setcomputersleep 10 

請記住,這個程序實際上並不執行系統命令,它只是打印到控制檯。如果您正在執行命令,this post可以提供幫助。