#!/usr/bin/python3 # -*- coding: utf-8 -*- def groupbythree (integer, sep = ' '): ''' Group integer by three figures Optionnal sep parameter is to define the char to put between groups and is space by default ''' from re import sub return (sub (',', sep, '{:,}'.format (integer))) def seconds_to_time (time): ''' Converts a number of second time to formated time ''' def leading_zero (value): return "%02d" % (value,) days = int (time/86400) hours = int ((time/3600) - (24*days)) minutes = int ((time/60) - (1440*days) - (60*hours)) seconds = int (time - (86400*days) - (3600*hours) - (60*minutes)) if days == 0: if hours == 0: if minutes == 0: return (str (leading_zero (seconds)) + 's') else: return (str (leading_zero (minutes)) + 'm ' + str (leading_zero (seconds)) + 's') else: return (str (leading_zero (hours)) + 'h ' + str (leading_zero (minutes)) + 'm ' + str (leading_zero (seconds)) + 's') else: return (str (days) + "j " + str (leading_zero (hours)) + 'h ' + str (leading_zero (minutes)) + 'm ' + str (leading_zero (seconds)) + 's') def sleep_to_next_second (): from time import sleep, time sleep (1-(time ()-int (time()))) def bytes_human (num): for x in ['B','KiB','MiB','GiB','TiB']: if num < 1024.0: return "%3.1f %s" % (num, x) num /= 1024.0