Мне удалось настроить индикатор выполнения внутри цикла, но я не смог правильно его подогнать с большими или меньшими значениями. Есть ли способ исправить или улучшить код?
Ниже того, что у меня есть:
from time import sleep
import socket
import sys
###### to reproduce my point, increment the number of variables on this list
result_ip = ['10.143.40.44', '10.143.40.80', '10.143.41.138', '10.143.41.139', '10.143.40.43', '10.143.40.41'] -
Result = []
length = len(result_ip) # CALULATES LENGTH OF MENTIONED LIST
i = 0
while i < length: # LOOPS UNTIL ALL THE POSITIONS ARE DONW
for lines in result_ip:
for k in range(length): # HERE STARTS THE STATUS BAR
try:
(name, _, ip_address_list) = socket.gethostbyaddr(result_ip[i]) #RETRIEVES DNS USING IP ON THE LIST
except socket.herror as msg: #ERROR HANDLER
Result.append("\nDNS NOT FOUND" + " - " + result_ip[i]+"\n")
i += 1
else:
ip_address1 = ip_address_list[0] #PROCESS THE DATA AND ADDS IT TO A NEW LIST
Result.append(name + " - " + ip_address1+"\n")
i += 1 #ITERATES ADDING 1 TO i
j = (k + 1) / length
sys.stdout.write('\r')
######### I THINK THE ISSUE IS HERE
sys.stdout.write("[{:{}}] {:.1f}%".format("=" * k, length - 1, (100 / (length - 1) * k)))
sys.stdout.flush()
sleep(0.25)