Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Как в питоне удалить файлы если существует? Help!

  1. Как в питоне удалить файлы если существует? Help!

    Ребят, ситуация такая: есть куча файлов, которые надо удалить, но не знаю, все ли из них реально существуют. Не будет ли ошибок, если просто попробую удалить все подряд? Как в питоне написать скрипт, который удаляет файлы, только если они реально существуют? В общем, как бы в python delete files if exists? Если кто сталкивался с такой задачей, подскажите, плиз, лучший подход, чтоб все окей было и програмка не падала при ошибках.



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Эй, пользуйся модулем os и os.path.exists(). Чекни пример кода:
    Программный код:
    import os

    files 
    = ['file1.txt''file2.txt''file3.txt']

    for 
    file in files:
        if 
    os.path.exists(file):
            
    os.remove(file)
            print(
    f'{file} удалён')
        else:
            print(
    f'{file} не существует'
    Этот скрипт проходит по списку файлов и пытается удалить каждый из них, сначала проверяя их наличие.

  4. Цитата Сообщение от Scheherazade
    Эй, пользуйся модулем os и os.path.exists(). Чекни пример кода:
    Программный код:
    import os

    files 
    = ['file1.txt''file2.txt''file3.txt']

    for 
    file in files:
        if 
    os.path.exists(file):
            
    os.remove(file)
            print(
    f'{file} удалён')
        else:
            print(
    f'{file} не существует'
    Этот скрипт проходит по списку файлов и пытается удалить каждый из них, сначала проверяя их наличие.
    Чёткий код, у меня такой же был для чистки старых логов. Проверка на существование спасает от ошибок. Гуд жб!

  5. Если хочешь чё-нить посерьёзнее, попробуй модуль pathlib. Вот пример:
    Программный код:
    from pathlib import Path
      
    files 
    = ['file1.txt''file2.txt''file3.txt']

    for 
    file in files:
        
    path Path(file)
        if 
    path.exists() and path.is_file():
            
    path.unlink()
            print(
    f'{file} удалён')
        else:
            print(
    f'{file} не найдён'
    pathlib как-то поудобнее кажется, юзай если не боишься новых библиотек!

  6. Цитата Сообщение от Кирилл Александрович
    Если хочешь чё-нить посерьёзнее, попробуй модуль pathlib. Вот пример:
    Программный код:
    from pathlib import Path
      
    files 
    = ['file1.txt''file2.txt''file3.txt']

    for 
    file in files:
        
    path Path(file)
        if 
    path.exists() and path.is_file():
            
    path.unlink()
            print(
    f'{file} удалён')
        else:
            print(
    f'{file} не найдён'
    pathlib как-то поудобнее кажется, юзай если не боишься новых библиотек!
    Да, pathlib крутая штука, с ним код читабельнее. Гуд что упомянул альтернативу.

  7. Можно ещё добавить чуть защиты на случай проблем с правами доступа. Вот пример:
    Программный код:
    import os

    files 
    = ['file1.txt''file2.txt''file3.txt']

    for 
    file in files:
        try:
            if 
    os.path.exists(file):
                
    os.remove(file)
                print(
    f'{file} удалён')
            else:
                print(
    f'{file} не существует')
        
    except PermissionError:
            print(
    f'Нет доступа к {file}'
    Это дополнительная защита может спасти нервы в будущем!

  8. Цитата Сообщение от Карина
    Можно ещё добавить чуть защиты на случай проблем с правами доступа. Вот пример:
    Программный код:
    import os

    files 
    = ['file1.txt''file2.txt''file3.txt']

    for 
    file in files:
        try:
            if 
    os.path.exists(file):
                
    os.remove(file)
                print(
    f'{file} удалён')
            else:
                print(
    f'{file} не существует')
        
    except PermissionError:
            print(
    f'Нет доступа к {file}'
    Это дополнительная защита может спасти нервы в будущем!
    Да, про права доступа всегда не забывайте, а то можно долго дебажить что не так.

  9. Ещё как вариант, можно юзать библиотеку glob для массового удаления файлов с определённым паттерном:
    Программный код:
    import os
    import glob

    files 
    glob.glob('*.txt')  # Удалить все .txt файлы

    for file in files:
        if 
    os.path.exists(file):
            
    os.remove(file)
            print(
    f'{file} удалён')
        else:
            print(
    f'{file} не существует'
    Это удобно, если формат имен файлов один и тот же.

  10. Цитата Сообщение от LeoWind
    Ещё как вариант, можно юзать библиотеку glob для массового удаления файлов с определённым паттерном:
    Программный код:
    import os
    import glob

    files 
    glob.glob('*.txt')  # Удалить все .txt файлы

    for file in files:
        if 
    os.path.exists(file):
            
    os.remove(file)
            print(
    f'{file} удалён')
        else:
            print(
    f'{file} не существует'
    Это удобно, если формат имен файлов один и тот же.
    Йо, удобный пример для массового удаления. Паттерны рулят!

Страница 1 из 2 12 ПоследняяПоследняя