在Mac终端上运行Python脚本

时间:2017-08-01 22:38:49

标签: python macos terminal scripting

我正在尝试在终端中执行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)

1 个答案:

答案 0 :(得分:0)

您只是声明一个类和方法。您需要实例化要调用的__init__函数的类。您可以通过在类定义之外的脚本底部添加以下内容来执行此操作:

Sleep()

还有其他一些问题。

  • 您在没有self.sleepAide()参数的情况下致电time,但由于您通过input
  • 收集它,因此看起来不需要它
  • 您没有在self定义中传递sleepAide,但尝试将其称为实例方法

我在下面做了一些改动,以获得一个有效的例子:

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可以提供帮助。