Hướng dẫn python run for 60 seconds - python chạy trong 60 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.

Dưới đây có một số mã hoạt động đầy đủ.

Tôi dự định thực thi mã này thông qua dòng lệnh, tuy nhiên tôi muốn nó kết thúc sau 60 giây.

Có ai biết cách tốt nhất để đi về điều này?

Cảm ơn trước.

import time
class listener(StreamListener):

    def on_data(self, data):
        try:
            print data
            saveFile = open('twitDB.csv','a')
            saveFile.write(data)
            saveFile.write('\n')
            saveFile.close()
            return True
        except BaseException, e:
            print 'failed ondata,' ,str(e)
            time.sleep(5)

    def on_error(self, status):
        print status

Hướng dẫn python run for 60 seconds - python chạy trong 60 giây

Các doanh nghiệp vừa và nhỏ

4.05517 Huy hiệu bạc26 Huy hiệu đồng17 silver badges26 bronze badges

Hỏi ngày 25 tháng 12 năm 2013 lúc 18:25Dec 25, 2013 at 18:25

8

Thử thứ này đi:

import os
import time
from datetime import datetime
from threading import Timer

def exitfunc():
    print "Exit Time", datetime.now()
    os._exit(0)

Timer(5, exitfunc).start() # exit in 5 seconds

while True: # infinite loop, replace it with your code that you want to interrupt
    print "Current Time", datetime.now()
    time.sleep(1)

Có một số ví dụ khác trong câu hỏi StackOverflow này: Thực hiện các hành động định kỳ trong Python

Tôi nghĩ rằng việc sử dụng os._exit(0) không được khuyến khích, nhưng tôi không chắc chắn. Một cái gì đó về điều này không cảm thấy kosher. Nó hoạt động, mặc dù.

Đã trả lời ngày 25 tháng 12 năm 2013 lúc 18:42Dec 25, 2013 at 18:42

Ehtesh Choudhuryehtesh ChoudhuryEhtesh Choudhury

7.2525 huy hiệu vàng42 Huy hiệu bạc47 Huy hiệu đồng5 gold badges42 silver badges47 bronze badges

9

Bạn có thể chuyển mã của mình vào một luồng daemon và thoát khỏi luồng chính sau 60 giây:

#!/usr/bin/env python
import time
import threading

def listen():
    print("put your code here")

t = threading.Thread(target=listen)
t.daemon = True
t.start()

time.sleep(60)
# main thread exits here. Daemon threads do not survive.

Đã trả lời ngày 25 tháng 12 năm 2013 lúc 19:26Dec 25, 2013 at 19:26

JFSJFSjfs

383K182 Huy hiệu vàng948 Huy hiệu bạc1619 Huy hiệu đồng182 gold badges948 silver badges1619 bronze badges

11

Sử dụng signal.ALARM để được thông báo sau một thời gian xác định.

import signal, os

def handler(signum, frame):
    print '60 seconds passed, exiting'
    cleanup_and_exit_your_code()

# Set the signal handler and a 60-second alarm
signal.signal(signal.SIGALRM, handler)
signal.alarm(60)

run_your_code()

Từ ví dụ của bạn, không rõ ràng mã sẽ làm chính xác như thế nào, nó sẽ chạy như thế nào và loại vòng lặp nào sẽ được lặp lại. Nhưng bạn có thể dễ dàng thực hiện tín hiệu ALARM để được thông báo sau khi hết thời gian chờ.

Đã trả lời ngày 25 tháng 12 năm 2013 lúc 19:17Dec 25, 2013 at 19:17

TishotishoTisho

7.9906 Huy hiệu vàng42 Huy hiệu bạc52 Huy hiệu đồng6 gold badges42 silver badges52 bronze badges

2

Đây là cách làm thời gian chờ yêu thích của tôi.

def timeout(func, args=None, kwargs=None, TIMEOUT=10, default=None, err=.05):
    if args is None:
        args = []
    elif hasattr(args, "__iter__") and not isinstance(args, basestring):
        args = args
    else:
        args = [args]

    kwargs = {} if kwargs is None else kwargs

    import threading
    class InterruptableThread(threading.Thread):
        def __init__(self):
            threading.Thread.__init__(self)
            self.result = None

        def run(self):
            try:
                self.result = func(*args, **kwargs)
            except:
                self.result = default

    it = InterruptableThread()
    it.start()
    it.join(TIMEOUT* (1 + err))
    if it.isAlive():
        return default
    else:
        return it.result

Đã trả lời ngày 25 tháng 12 năm 2013 lúc 19:53Dec 25, 2013 at 19:53

5

Tôi hy vọng đây là một cách dễ dàng để thực hiện chức năng định kỳ và kết thúc sau 60 giây:

import time
import os
i = 0
def executeSomething():
 global i
 print(i)
 i += 1
 time.sleep(1)
 if i == 10:
    print('End')
    os._exit(0)


while True:
 executeSomething()

Đã trả lời ngày 28 tháng 8 năm 2019 lúc 11:58Aug 28, 2019 at 11:58

Hướng dẫn python run for 60 seconds - python chạy trong 60 giây

DebadattadeBadattaDebadatta

1.7322 huy hiệu vàng10 Huy hiệu bạc15 Huy hiệu đồng2 gold badges10 silver badges15 bronze badges

Làm thế nào để bạn chạy mã cứ sau 60 giây trong Python?

Chạy từng phút Python..
từ thời gian nhập khẩu, giấc ngủ ..
Trong khi đúng:.
Ngủ (60 - Thời gian () % 60).
# điều cần chạy ..

Làm cách nào để chạy bộ hẹn giờ trong Python?

Một người quản lý bối cảnh hẹn giờ Python..
Đầu tiên, khởi tạo lớp ..
Cuộc gọi .bắt đầu () trước khi khối mã mà bạn muốn thời gian ..
Cuộc gọi .Dừng () sau khối mã ..

Làm thế nào để bạn làm cho Python đợi 5 giây?

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 cách nào để chạy chức năng Python cứ sau 5 phút?

Với sự trợ giúp của mô -đun lịch trình, chúng ta có thể tạo một tập lệnh Python sẽ được thực thi trong mỗi khoảng thời gian cụ thể nhất định.với lịch trình chức năng này. Mọi người (5) .minutes.do (FUNC) sẽ gọi cứ sau 5 phút.schedule. every(5). minutes.do(func) function will call every 5 minutes.