Advertisement
HasteBin0

File Scrubber in Python 36

Feb 19th, 2017
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.50 KB | None | 0 0
  1. #!/usr/bin/python3
  2. from os.path import isfile, getsize
  3. from os import remove
  4. from secrets import randbits
  5. from math import floor
  6.  
  7. filename: str
  8. while True :
  9.     filename = input('File: ')
  10.     if filename.lower().strip() in ('', 'none', 'quit') :
  11.         exit()
  12.     elif isfile(filename.strip()) :
  13.         filename = filename.strip()
  14.         print()
  15.         break
  16.     else :
  17.         print('\a')
  18.  
  19. iterations: int
  20. while True :
  21.     try :
  22.         iterations = int(input('Number of iterations: ').strip())
  23.         assert iterations > 0
  24.         break
  25.     except :
  26.         print('\a')
  27.  
  28. file_size: int
  29. try :
  30.     file_size = getsize(filename)
  31. except :
  32.     print('No access.')
  33.     exit()
  34.  
  35. for x in range(iterations) :
  36.     y = floor(x / iterations * 100)
  37.     print(f"{y:>02}%\r", end='')
  38.     try :
  39.         file = open(filename, 'wb+')
  40.         file.write(bytes(randbits(8) for _ in range(file_size)))
  41.     except :
  42.         print('Access interrupted on {}%.'.format(y) if x else 'No access.')
  43.         exit()
  44.     finally :
  45.         try :
  46.             file.close()
  47.         except NameError :
  48.             pass
  49.  
  50. try :
  51.     file = open(filename, 'rb')
  52.     read = file.readall()
  53.     file.close()
  54.     #
  55.     file = open(filename, 'wb+')
  56.     file.write(bytes(randbits(8) ^ read[x] for x in range(file_size)))
  57.     file.close()
  58.     #
  59.     remove(filename)
  60. except :
  61.     print('No access.')
  62.     exit()
  63. finally :
  64.     try :
  65.         if not file.closed : file.close()
  66.     except :
  67.         pass
  68.  
  69. print('Done.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement