ターミナルでPythonスクリプトを実行しようとしています。
Pythonシェルで実行すると、想定どおりに動作します。エラーなしで実行されますが、ターミナルで実行しても何も起こりません。
これが理解されたら、プログラムに「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)
クラスとメソッドを宣言しているだけです。__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
このプログラムは実際にはシステムコマンドを実行せず、コンソールに出力するだけであることに注意してください。コマンドの実行を検討している場合は、この投稿が役立ちます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加