import os
import time
print("=" * 50)
print(" ПРОГРАММА ДЛЯ УНИЧТОЖЕНИЯ ФАЙЛОВ")
print("=" * 50)
print()
while True:
filename = ""
while filename == "":
filename = input("Введите имя файла: ")
if filename == "":
print("Имя не может быть пустым, попробуйте снова")
print()
print("Вы выбрали файл:", filename)
print()
if not os.path.exists(filename):
print("ОШИБКА: такого файла не существует!")
print()
answer = input("Хотите попробовать другой файл? (да/нет): ").strip().lower()
if answer == "да":
print()
continue
else:
break
print("Файл найден!")
print()
file_size = os.path.getsize(filename)
print("Размер файла:", file_size, "байт")
print()
if file_size == 0:
print("Файл пустой, просто удаляем...")
os.remove(filename)
print("Файл удалён")
print()
answer = input("Хотите уничтожить ещё один файл? (да/нет): ").strip().lower()
if answer == "да":
print()
continue
else:
break
passes_text = input("Сколько раз затирать файл? (например 3): ")
try:
passes = int(passes_text)
except ValueError:
print("Неверный ввод, ставим 1 проход")
passes = 1
if passes <= 0:
print("Неверное число, ставим 1 проход")
passes = 1
print()
print("Будет выполнено проходов:", passes)
print()
zeros = b"\x00" * file_size
counter = 1
while counter <= passes:
print("Проход номер", counter)
f = open(filename, "wb")
f.write(zeros)
f.close()
print(" Проход", counter, "завершён")
print()
time.sleep(0.5)
counter += 1
print("Все проходы выполнены!")
print()
new_name = filename + ".delete"
try:
os.rename(filename, new_name)
print("Файл переименован в:", new_name)
time.sleep(0.5)
os.remove(new_name)
print("Файл удалён:", new_name)
except Exception as e:
print("Ошибка при удалении файла:", e)
print()
print("=" * 50)
print(" ГОТОВО! ФАЙЛ УНИЧТОЖЕН")
print("=" * 50)
print()
answer = input("Хотите уничтожить ещё один файл? (да/нет): ").strip().lower()
print()
if answer != "да":
break
print("Спасибо за использование программы!")
print("До свидания!")
Используйте код с осторожностью.
Если вы хотите сделать утилиту еще надежнее, я могу помочь добавить защиту от случайного ввода букв вместо цифр (проверка try/except), а также реализовать заполнение случайными байтами вместо нулей (для более надежного уничтожения данных). Хотите улучшить этот алгоритм?