Advertisement
Guest User

Untitled

a guest
May 23rd, 2013
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.28 KB | None | 0 0
  1. #!/usr/bin/python3                                                                                                                                    
  2. import os, sys, time
  3. from multiprocessing import Pool
  4. dirname = os.getcwd() if len(sys.argv) == 1 else sys.argv[1]
  5. procNum = 5 if len(sys.argv) < 3 else sys.argv[2]
  6. deleteConfirm = input('Delete all files from dir ' + str(dirname) + ' (y/n)? ')
  7. if(deleteConfirm not in ['y','Y']):
  8.     sys.exit()
  9.  
  10. def main():
  11.     flist = os.listdir(dirname)
  12.     count = len(flist)
  13.     if count < 100000:
  14.         counter = 0
  15.         for file in flist:
  16.                 os.remove(os.path.join(dirname, file))
  17.                 counter+=1
  18.                 if(0==counter%1000):
  19.                     sys.stdout.write('\rDeleted %d files' % counter)
  20.                     sys.stdout.flush()
  21.             print('\rDeleted %d files' % counter)
  22.             sys.exit(0)
  23.         else:
  24.             workers = Pool(processes=procNum)      
  25.             result = workers.imap_unordered(delfile,flist)
  26.         workers.close()
  27.         while True:
  28.                     time.sleep(5)
  29.                     completed = result._index
  30.                     if completed == count:
  31.                         print('')
  32.                         break
  33.                     sys.stdout.write('\rRemoved %d files' % result._index)
  34.             workers.join()
  35.  
  36.  
  37.  
  38.  
  39. def delfile(fname):
  40.     os.remove(os.path.join(dirname,fname))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement