【问题标题】:Run Python script on Mac terminal在 Mac 终端上运行 Python 脚本
【发布时间】:2018-01-08 23:07:29
【问题描述】:

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

【问题讨论】:

  • 这就是整个脚本?每个字符和 indent 是否与文件中的相同?

标签: python macos terminal scripting


【解决方案1】:

您只是在声明一个类和方法。您需要为要调用的__init__ 函数实例化该类。您可以通过在类定义之外的脚本底部添加以下内容来做到这一点:

Sleep()

还有一些其他问题。

  • 您在没有 time 参数的情况下调用 self.sleepAide(),但看起来您不需要它,因为您通过 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 可以提供帮助。

【讨论】:

    猜你喜欢
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2018-12-25
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多