Tôi đang làm việc trên một ứng dụng tương đối nặng cho dòng Pandas. Có cách nào để trả về một số phản hồi in về khoảng cách bên trong hàm in mỗi lần nó được gọi không?
Bạn có thể gói các chức năng của mình bằng các công cụ theo dõi. Dưới đây là hai ví dụ, một dựa trên số lần lặp đã hoàn thành và một dựa trên phần trăm của tổng nỗ lực.
từ dòng nhập khẩu gấu trúc
def Progress_coroutine(print_on = 10000):
in "Theo dõi tiến trình bắt đầu"
lần lặp = 0
while True:
năng suất
lần lặp += 1
if (lặp % print_on == 0):
print "{} lần lặp đã hoàn thành".format(iterations)
def phần trăm_coroutine(to_process, print_on_percent = 0,10):
in "Màn hình phần trăm tiến trình bắt đầu"
đã xử lý = 0
đếm = 0
print_count = to_process*print_on_percent
while True:
năng suất
đã xử lý += 1
đếm += 1
nếu (đếm >= print_count):
đếm = 0
pct = (float(đã xử lý)/float(to_process))*100
in "{}% đã hoàn thành".format(pct)
def trace_progress(func, Progress = Không):
def callf(*args, **kwargs):
nếu (tiến trình không phải là Không):
tiến trình.send(Không có)
return func(*args, **kwargs)
gọi lại
def my_func(i):
returni*2
data_series = Chuỗi(xrange(100000))
co1 = Progress_coroutine()
co1.next()
co2 = phần trăm_coroutine(len(data_series))
co2.next()
data_series.apply(trace_progress(my_func, Progress = co1))
data_series.apply(trace_progress(my_func, Progress = co2))
Giám sát tiến trình khởi động
Màn hình phần trăm tiến độ bắt đầu
10000 lần lặp được thực hiện
20000 lần lặp được thực hiện
30000 lần lặp được thực hiện
40000 lần lặp được thực hiện
50000 lần lặp được thực hiện
60000 lần lặp được thực hiện
70000 lần lặp được thực hiện
80000 lần lặp được thực hiện
90000 lần lặp được thực hiện
100000 lần lặp được thực hiện
10,0% đã hoàn thành
20,0% đã hoàn thành
Đã hoàn thành 30,0%
Đã hoàn thành 40,0%
Đã hoàn thành 50,0%
Đã hoàn thành 60,0%
Đã hoàn thành 70,0%
Đã hoàn thành 80,0%
Đã hoàn thành 90,0%
Đã hoàn thành 100,0%
Tôi là một lập trình viên xuất sắc, rất giỏi!