Автозаполнение текста данными из списка

Рейтинг: 0Ответов: 1Опубликовано: 28.07.2023

Я хочу сделать поисковую систему файлов на компьютере, и чтобы пользователь не писал полностью все названия вручную надо, чтобы находило файлы с этим текстом в названии.

Например, если пользователь написал banana, должно находить (banana.png, gold_banana.csv), и чтобы записывалось в delete директорию файла, чтобы потом его или их можно было удалить при желании пользователя.

И можно ли сделать что бы если найденно файлов с таким именем несколько то можно было удалить сразу все?

import os
from os.path import join
import time
import re

path = 'C:\\'
list_file = []

for root, dirs, files in os.walk(path):
    for filename in files:
        print(filename)
        list_file.append(filename)

delete_name = input("Напишите название файла который надо удалить:\n")
delete = re.findall(r'^|$', delete_name)
delete = str(delete)

time.sleep(3)

for root, dirs, files in os.walk(path):
    # file_search = print(root)
    if delete in list_file:
        print("Готово")
        file_open = print(join(root, delete))
        delete_files = print("Удалить файлы?\n1) Да\n2) Нет\n\nПисать только цифру!")
        delete_files = int(delete_files)
        if delete_files == 1:
            os.remove(delete)
            print(delete, "Удален")
        elif delete_files == 2:
            break

Спасибо заранее! Т.к. нигде не мог найти по этому инфу

Ответы

▲ 1

Это не очень хорошая идея изначально, но если вам просто нужно найти банан, то вот:

import re
names_list=["adjaofijaofbananaosijfosijfos.png", "ofbananaosifos.jesus", "adjas.exe"]
fordelete=[]
text=str(input())
for i in names_list:
    match = re.search(text, i) 
    if match:
        fordelete.append(i)

print(fordelete)

Получите список всех файлов подходящих для удаления... А что делать с ними дальше - уже вам решать