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

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

ただいまの
回答率

90.75%

  • Python 3.x

    5304questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

python 時間 経過 カウント 処理

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 1,302

junnnn

score 9

pythonでの時間のカウントがわかりません,,,
pythonで現在の時刻から1分が経過したら処理するコードがイメージつきません、、
time.sleep()でカウントするのではなく、現在の時刻取得し1分経過後に指定したコードを処理すると言った感じです。

宜しくお願い致します。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

check解決した方法

0

import datetime 

while True:
time = datetime.datetime.now()
if time.second == 0: # 現在の時刻(秒数)が1 2 3...59とカウントされ、秒数が0に戻ったら処理
print('1分経過')

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/11 03:22

    この方法だと1分ちょうどはかれないような...
    can110さんのように時間の差分を考える必要があります。

    キャンセル

  • 2017/11/11 03:34

    いや、KSwordOfHasteさんの方法で充分ですね。シングルスレッドでいいのですし。

    キャンセル

  • 2017/11/11 04:00

    そうですね、ですが、実行時からタイムを測るのではなく現在の時刻から、分区切りに実行したいのであれば自分が解決したコードがいいのではないかと思っています。
    例)作ったアプリが使用するユーザーがどのタイミングで実行しても同じ時刻にコードが処理されると言った感じです。

    キャンセル

  • 2017/11/11 04:03

    なるほど。しかしそれですと、ちょっと説明不足かな、という感があります。
    これらの発言から、そのような仕様を読み取るのは無理があるかと。
    ・『現在の時刻から1分が経過したら』
    ・『現在時刻から1分経過したタイミングで』
    ・『正確な時間でのカウント』

    キャンセル

  • 2017/11/11 04:06

    質問にあたって、以下の点が非常に不明瞭だったと思います。
    ・なぜtime.sleepを避けなければならないのか?
    ・どのような目的で1分待つのか?
    ・シングルスレッドか?マルチスレッドか?
    ・OSなどの環境は?
    後だしですみません、本来ならば前もって聞くべきではありますが...
    過ぎた話なので、次回以降の質問の際はもう少し具体性を持たせてあげてください。

    キャンセル

  • 2017/11/11 04:13

    いえいえ、自分が説明不足でしたので、とても参考になります。
    次回から、気をつけていきます。
    ありがとうございます。

    キャンセル

0

time.sleep()を使わず5秒後にhoge出力する例です。

import time
t = time.time()
print('start')
while True:
    c = time.time()
    if c - t >= 5:
        print('hoge')
        break
print('end')

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/11 03:01

    回答ありがとうございます。
    非常に参考になりました。

    問題の方も解決しました。

    キャンセル

0

うーん・・・sleepでよいと思います。sleepはカウントする機能ではありません。あくまで「任意の時間プログラムの実行を中断」するものです。1秒,1分,1時間,1日等々の長い時間でも1回の呼び出しで待たせることができます。

from time import sleep

def do_something():
  ...

sleep(60)       # 1分待つ
do_something()  # そして何かする

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/11 00:33

    あ・・・ひょっとしてpythonのGUIアプリで「現在時刻から1分経過したタイミングで何かする」のが目的でしょうか?もしそうならsleepはNGですね。もしそのような目的ならどんなGUIライブラリーを使っているかによってやり方が違うと思います。

    キャンセル

  • 2017/11/11 02:58

    回答ありがとうございます。
    はい、「現在時刻から1分経過したタイミングで何かする」のが目的でした。

    問題の方はなんとか解決しました。

    キャンセル

0

言語名 アラーム (alarm)、タイマー (timer) でぐぐるとHITするかと。
例) python timer
threading.Timer

以下はタイマーを使ったコードです。

# -*- coding: utf-8 -*-
import threading
import time


def log(text):
    print("{0}:{1}".format(text, time.time()))


def hello():
    log("hello")


def main():
    # 5秒後に実行
    t = threading.Timer(5, hello)
    t.start()
    log("main ")
    time.sleep(7)
    log("main ")


if __name__ == '__main__':
    main()

注意点としてリアルタイムOSでない場合、タイマーイベントの発火タイミングに注意する必要があります。

threading.Timer
タイマが活動を実行するまでの待ち時間は、ユーザが指定した待ち時間と必ずしも厳密には一致しません。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/11 02:56

    回答ありがとうございます。
    すみません、正確な時間でのカウントなので、欲しかった回答とは違ってました。
    ですが、参考になりました。

    問題の方も解決しました。

    キャンセル

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

  • ただいまの回答率 90.75%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    pythonで文章内の改行数を数える方法

    pythonやmecabを使って文章内に出現する改行数をカウントしたいのですが、良い方法が見つかりません。 教えていただけませんでしょうか? 例: これはサンプルです。 これはサ

  • 受付中

    特定位置にある文字列の出現頻度 python

    以下のようなテキストファイルがあります. pythonを用い,'['の直後のIDのみ,出現回数をカウントしたいと考えています. しかし,3つ目のクォーテーション内にも同じIDが出現

  • 受付中

    openpyxlでシリアル値の日付への変換

    pythonのExcel操作ライブラリのopenpyxlを使っています。 Excel上では日付で表示されているデータを取得すると、シリアル値が帰ってきます。シリアル値を日付に変換

  • 受付中

    ターミナルで実行するのに時間がかかりすぎる

    ターミナルで実行するのに時間がかかりすぎます。 画像圧縮のアルゴリズムを書いています。 N × N ピクセルのグレースケール画像があり各ピクセルの画素値は 0 から 255

  • 解決済

    ハノイの塔を4回回したい

    ハノイの塔を4回回したいです。 # -*- coding: utf-8 -*- def hanoi(n, x, y, z): count = 0 while cou

  • 受付中

    nltkのplotとkeysについて

    nltkで形態素解析をしています その際に文章中によく含まれる単語に分布をみるplotと 頻出単語をリストにするkeys()を用いています plotの分布とkeysで出力し

  • 受付中

    countメソッド

    >>> num_list = [2, 4, 6, 4, 4, 2, 6] >>> for i in range(num_list.count(4)): print(i,

  • 解決済

    pygame python ゲーム

    import pygame from pygame.locals import * import sys import time def main(): (w,h) =

同じタグがついた質問を見る

  • Python 3.x

    5304questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。