Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import os
- from pathlib import Path
- sys.path.append("rarfile-master")
- import rarfile
- import win32api
- drives = win32api.GetLogicalDriveStrings()
- drives = drives.split('\000')[:-1]
- def search(path):
- files = []
- print("Searching for password protected rar files in " + path + " - This may take a while\n")
- p = sorted(Path(path).glob('**/*.rar'))
- for item in p:
- try:
- with rarfile.RarFile(item) as rf:
- if rf.needs_password():
- print(rf.filename)
- files.append(rf.filename)
- except:
- pass
- f = open("file_list.txt","a")
- if len(files) > 0:
- for item in files:
- f.write(item + "\n")
- f.close()
- print("Results written to file_list.txt\n")
- else:
- print("No results found on " + path)
- def get_response():
- response = input(">>> ")
- if len(response) == 1:
- try:
- search(drives[int(response)])
- except:
- if response == 'A' or response == 'a':
- for entry in drives:
- search(entry)
- else:
- print("invalid input - try again\n")
- get_response()
- else:
- print("too many letters in input - try again\n")
- get_response()
- for i in range(len(drives)):
- print(str(i) + " : " + drives[i])
- print("Type the corresponding number of the drive you want to search or type 'A' for all drives\n")
- get_response()
- def get_response():
- response = input(">>> ")
- if len(response) == 1:
- try:
- search(drives[int(response)])
- except:
- if response == 'A' or response == 'a':
- for entry in drives:
- search(entry)
- else:
- print("invalid input - try again\n")
- get_response()
- else:
- print("too many letters in input - try again\n")
- get_response()
Advertisement
Add Comment
Please, Sign In to add comment