Hướng dẫn python run function for x seconds - hàm chạy python trong x giây

-2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một luồng dữ liệu mà tôi cần phân tích và trích xuất các giá trị từ, tạo một danh sách các giá trị đó và nối chúng vào một danh sách theo kiểu danh sách lồng nhau, ví dụ: Danh sách chính [[FirstExtractedValue], [SecondExTractedValue] ...]. Việc tạo ra danh sách chính phải chạy trong các phân đoạn 15 phút, sau đó tôi lặp lại danh sách chính và tạo một danh sách thứ hai. Nếu tôi gọi giấc ngủ () hoặc luồng. TIMER, danh sách không được tạo vì cả hai chạy sau một khoảng thời gian nhất định. Tôi cần chức năng để chạy trong một khoảng thời gian nhất định (tức là nó cần tạo danh sách trong 15 phút).

hỏi ngày 21 tháng 6 năm 2016 lúc 13:50Jun 21, 2016 at 13:50

Hướng dẫn python run function for x seconds - hàm chạy python trong x giây

5

Bạn chỉ có thể định kỳ kiểm tra thời gian, và kết thúc sau 15 phút, phải không? Cái gì đó như:

import datetime
def func(maxrt):
    stop = datetime.datetime.now() + maxrt
    while datetime.datetime.now() < stop:
        # do stuff

func(datetime.timedelta(minutes=15))

Đã trả lời ngày 21 tháng 6 năm 2016 lúc 13:57Jun 21, 2016 at 13:57

user590028user590028user590028

10,9k3 Huy hiệu vàng38 Huy hiệu bạc56 Huy hiệu Đồng3 gold badges38 silver badges56 bronze badges

2

Home Python-Tutorials Cách thực hiện hàm mỗi lần x trong Python How to Execute a function every x seconds in python

Để thực hiện một hàm mỗi x giây trong Python:

  1. Sử dụng phương thức thời giantime.sleep() method
  2. Sử dụng mô -đun lịch trìnhsched module
  3. Sử dụng mô -đun Apschedulerapscheduler module
  4. Sử dụng mô -đun luồngthreading module


Hướng dẫn python run function for x seconds - hàm chạy python trong x giây

Phương thức số 1: Sử dụng thời gian.s ngủ () để thực thi hàm cứ sau mỗi giây trong Python

Cách phổ biến nhất để thực hiện hàm mỗi giây trong python là sử dụng phương thức thời gian.slede (). Hàm Time.Sleep () là một hàm tích hợp python được sử dụng để làm cho chương trình ngủ trong thời gian được chỉ định.execute a function every x seconds in Python is to use the time.sleep() method. The time.sleep() function is a Python built-in function that is used to make the program sleep for the time specified.

Chúng ta có thể sử dụng thời gian.s ngủ để thực hiện mỗi x giây. Có hai cách khác nhau để sử dụng thời gian.s ngủ ():

Cách sử dụng sai thời gian.s ngủ ():

Mã dưới đây không thực hiện cứ sau 60 giây. Nó đặt khoảng cách 60 giây giữa các lần thực thi. Nó chỉ xảy ra cứ sau 60 giây nếu mã được thực thi của bạn không mất thời gian nào cả.

import time
while True:
    # Code executed here
    time.sleep(60)
cách tốt để sử dụng thời gian.s ngủ ():

The Good way to use the time.sleep():

import time
starttime = time.time()
while True:
    print("tick")
    time.sleep(60.0 - ((time.time() - starttime) % 60.0))


Phương thức số 2: Sử dụng mô -đun lịch trình trong Python để thực thi mã Python sau khoảng thời gian:

Chúng ta có thể sử dụng mô -đun lịch trình để gọi chức năng hoặc một khối mã Python sau một số khoảng thời gian sử dụng mô -đun lịch trình. Mô -đun lịch trình là mô -đun Python được sử dụng để lên lịch mã.

import sched, time
s = sched.scheduler(time.time, time.sleep)
def do_something(sc): 
    print("Doing stuff...")
    # do your stuff
    sc.enter(60, 1, do_something, (sc,))

s.enter(60, 1, do_something, (s,))
s.run()


Phương pháp số 3: Sử dụng mô -đun Apscheduler trong Python để thực thi hàm mỗi lần x giây

Bạn có thể sử dụng mô -đun apscheduler bên thứ ba này trong Python. Nó rất hữu ích theo những cách khác là tốt. Bạn có thể cung cấp các chức năng khác như Blockscheduler, TwistedScheduler và nhiều chức năng khác.

from apscheduler.schedulers.background import BlockingScheduler
def print_t():
  pass

sched = BlockingScheduler()
sched.add_job(print_t, 'interval', seconds =60) #will do the print_t work for every 60 seconds

sched.start()


Phương thức số 4: Sử dụng mô -đun luồng để thực hiện hàm sau một khoảng thời gian

Dưới đây là mã Python, chỉ cho bạn cách sử dụng mô -đun luồng để thực thi hàm sau một số khoảng. Bạn có thể kiểm tra nó.


import threading 
import time

class RepeatedTimer(object):
  def __init__(self, interval, function, *args, **kwargs):
    self._timer = None
    self.interval = interval
    self.function = function
    self.args = args
    self.kwargs = kwargs
    self.is_running = False
    self.next_call = time.time()
    self.start()

  def _run(self):
    self.is_running = False
    self.start()
    self.function(*self.args, **self.kwargs)

  def start(self):
    if not self.is_running:
      self.next_call += self.interval
      self._timer = threading.Timer(self.next_call - time.time(), self._run)
      self._timer.start()
      self.is_running = True

  def stop(self):
    self._timer.cancel()
    self.is_running = False



Có một cuộc trò chuyện với tôi!

Tôi hy vọng bạn thích hướng dẫn Python này. Bây giờ, đừng ngần ngại để lại tin nhắn. Tôi trả lời mỗi thư tôi nhận được. Tôi sẽ rất vui khi được trò chuyện với bạn.. I respond to every mail I receive. I will be more than happy to chat with you.

Làm cách nào để chạy một chức năng tại một thời điểm cụ thể trong Python?

Để bắt đầu một hàm tại một thời điểm nhất định với Python, chúng ta có thể sử dụng hàm Timedelta để đặt độ trễ trước khi chạy chức năng. Để tạo chức năng cập nhật mà chúng tôi muốn chạy sau độ trễ 3 giây. Để làm điều này, chúng tôi có được thời gian ngày hiện tại với DateTime.use the timedelta function to set the delay before running the function. to create the update function that we want to run after a 3 second delay. To do this, we get the current date time with datetime.

Làm thế nào để bạn làm một độ trễ 1 giây trong Python?

Nếu bạn đã có một chương trình Python và bạn muốn chờ đợi, bạn có thể sử dụng một hàm đơn giản như thế này: Time.s ngủ (x) trong đó x là số giây mà bạn muốn chương trình của bạn chờ đợi.time. sleep(x) where x is the number of seconds that you want your program to wait.

Làm thế nào để bạn lặp lại một chức năng trong Python cứ sau 5 giây?

Để chạy mã cứ sau 5 giây trong Python, bạn có thể sử dụng một vòng lặp và hàm mô -đun Python Sleep ().Bạn có thể sử dụng một vòng lặp hoặc vòng lặp trong thời gian.use a loop and the Python time module sleep() function. You can use a for loop or a while loop.

Cách tốt nhất để liên tục thực hiện một hàm mỗi x giây python là gì?

Nếu bạn muốn một cách không chặn để thực hiện chức năng của mình theo định kỳ, thay vì một vòng lặp vô hạn chặn, tôi sẽ sử dụng bộ hẹn giờ có ren.Bằng cách này, mã của bạn có thể tiếp tục chạy và thực hiện các tác vụ khác mà vẫn có chức năng của bạn được gọi là mỗi giây.use a threaded timer. This way your code can keep running and perform other tasks and still have your function called every n seconds.