Changeset 1793
- Timestamp:
- 11/14/08 10:11:24 (16 months ago)
- Files:
-
- 1 modified
-
CodeSnippets/MD5sum_calc/md5sum_calc.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
CodeSnippets/MD5sum_calc/md5sum_calc.py
r1791 r1793 20 20 __url__ = "http://www.jensdiemer.de" 21 21 22 __version__ = "0.2. 7"22 __version__ = "0.2.8" 23 23 24 24 __history__ = """ 25 v0.2.8 26 - more status information 27 - status performance calculated for a short term only 25 28 v0.2.7 26 29 - Work-a-round if under Windows only a Driveletter given, see: … … 50 53 """ 51 54 52 import sys, os, md5, ConfigParser, datetime, time55 import sys, os, string, md5, ConfigParser, datetime, time 53 56 54 57 BUFSIZE = 65536 … … 117 120 print "_" * 79 118 121 print " %s v%s\n" % (__info__, __version__) 122 123 124 def human_time(t): 125 if t>3600: 126 divisor = 3600.0 127 unit = "h" 128 elif t>60: 129 divisor = 60.0 130 unit = "min" 131 else: 132 divisor = 1 133 unit = "sec" 134 135 return "%.1f%s" % (round(t/divisor, 2), unit) 119 136 120 137 … … 235 252 self.write_md5file(md5sum) 236 253 237 238 def create_md5sum(self): 254 def create_md5sum(self): 239 255 file_size = os.stat(self.file_name_path).st_size 240 time_threshold = start_time = int(time.time())256 time_threshold = start_time = time.time() 241 257 try: 242 258 f = file(self.file_name_path, "rb") 243 259 m = md5.new() 244 bytesreaded = 0260 bytesreaded = old_readed = 0 245 261 threshold = file_size / 10 246 262 while 1: … … 250 266 break 251 267 252 current_time = int(time.time())253 if current_time > time_threshold:268 current_time = time.time() 269 if current_time > (time_threshold + 0.5): 254 270 255 271 elapsed = float(current_time-start_time) # Vergangene Zeit 256 272 estimated = elapsed / bytesreaded * file_size # Gesch�te Zeit 257 performance = bytesreaded / elapsed / 1024 / 1024 258 259 if estimated>60: 260 time_info = "%.1f/%.1fmin" % (elapsed/60, estimated/60) 261 else: 262 time_info = "%.0f/%.1fsec" % (elapsed, estimated) 263 273 remain = estimated - elapsed 274 275 diff_bytes = bytesreaded-old_readed 276 diff_time = current_time-time_threshold 277 performance = diff_bytes / diff_time / 1024.0 / 1024.0 278 279 percent = round(float(bytesreaded)/file_size*100.0, 2) 280 281 infoline = ( 282 " " 283 "%(percent).1f%%" 284 " - current: %(elapsed)s" 285 " - total: %(estimated)s" 286 " - remain: %(remain)s" 287 " - %(perf).1fMB/sec" 288 " " 289 ) % { 290 "percent" : percent, 291 "elapsed" : human_time(elapsed), 292 "estimated": human_time(estimated), 293 "remain" : human_time(remain), 294 "perf" : performance, 295 } 264 296 sys.stdout.write("\r") 265 sys.stdout.write( 266 "%3.i%% %s %.1fMB/sec " % ( 267 round(float(bytesreaded)/file_size*100), 268 time_info, 269 performance 270 ) 271 ) 297 sys.stdout.write(string.center(infoline, 79)) 298 272 299 time_threshold = current_time 300 old_readed = bytesreaded 301 273 302 m.update(data) 274 303 end_time = time.time()