質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3177閲覧

(Python)時間制限のinputの作り方について

help-man

総合スコア58

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/02 02:33

編集2021/12/02 10:37

『平日の23時になったらメッセージが出てきて1分以内に【n】を押さないとシャットダウンをする(1分以内に【y】を押してもシャットダウンする)』を作りたいのですが作り方が分かりません
一応『inputが出てきて【n】を押さないとシャットダウンをする』と『時間指定にシャットダウンする』はできました

python

1shutdown = input("パソコンをシャットダウンしますか? (y/n): ") 2 3if shutdown == 'n': 4 exit() 5else: 6 os.system("shutdown/s/t 1")

python

1 def shutdown(): 2 os.system('shutdown -s')#23時にシャットダウン 3 4 schedule.every().monday.at("23:00").do(shutdown) 5 schedule.every().tuesday.at("23:00").do(shutdown) 6 schedule.every().wednesday.at("23:00").do(shutdown) 7 schedule.every().thursday.at("23:00").do(shutdown) 8 schedule.every().friday.at("23:00").do(shutdown) 9 while True: 10 schedule.run_pending() 11 time.sleep(60)

ここからどうすればよろしいのでしょうか?
何卒ご教授よろしくお願いいたします

参考サイト
timeout付きinputを作った:(https://qiita.com/johejo/items/8e724110a008b27d6c1f)
pythonのinput関数ついてです:(https://teratail.com/questions/92991)

ちなみに「参考サイトの方法でできないのか?」というコメントがあったので補足させていただきますと参考サイトの方法だとできませんでした。1つ目のをそのまんまコピペして実行すると「AttributeError: module 'signal' has no attribute 'SIGALRM'」とエラーが起き、2つ目だと「no module named 'inputimeout'」とでます。(pipとcondaでインストール済)
引き続きエラー要因の解明を追究中です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2021/12/02 03:32

おそらくOS依存になると思います。
y_waiwai

2021/12/02 06:26

その参考サイトではだめなんでしょうか
help-man

2021/12/02 09:37 編集

otnさん>コメントありがとうございます。てっきりif文でやるのかなと思ってました。例えば「もし23時なったら1分間の間にinput("パソコンをシャットダウンしますか? (y/n):")をして答える→y・もしくは時間オーバーならシャットダウンする、nならしない」という感じだと思ってました。なのでOSについて勉強しようかと思います y_waiwaiさん>コメントありがとうございます。参考サイトの方法だとできませんでした。1つ目のをそのまんまコピペして実行すると「AttributeError: module 'signal' has no attribute 'SIGALRM'」とエラーが起き、2つ目だと「no module named 'inputimeout'」とでます。(pipとcondaでインストール済) 引き続きエラー要因の解明を追究中です。
y_waiwai

2021/12/02 10:19

ならそれを質問に書こうよ
help-man

2021/12/02 10:35

すいません。分かりました。編集して追加しておきます
otn

2021/12/02 10:40

「OS依存」という言葉の意味が通じなかったのですね。 WindowsかLinuxかMacかなどによって、やり方が違うという意味です。 自分の使っているOSはわかりますよね?それを書きましょう。
guest

回答2

0

ベストアンサー

shutdown/s/t 1

と書いているのだから、Windowsか。
os.systemで標準コマンドを使ってしまうのが簡単です。

Python

1shutdown = os.system("choice /m パソコンをシャットダウンしますか? /c yn /t 60 /d y") 2# Y か、タイムオーバーの時に 1 、N だと 2 が返る 3 4if shutdown == 2: 5 exit() 6else: 7 os.system("shutdown/s/t 1")

投稿2021/12/02 11:13

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

help-man

2021/12/02 14:04

「OS依存」の意味はググったらでてきたので理解はできました。 OSは確かにwindowsです。 タグに付け加えるべきでした。大変申し訳ございません。 コードも教えてくださりありがとうございました。 else: os.system("shutdown/s/t 1") とするとエラーがでてきましたので else: os.system("shutdown -s") としたらできました。 大変助かりました。本当にありがとうございます。
guest

0

timeout付きinputを作った
こんなのを見つけましたがどうでしょうか?

投稿2021/12/02 02:45

irognodyci

総合スコア227

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問