0 / 0 / 1
Регистрация: 26.11.2016
Сообщений: 19

Удаление файла из папки с самым ранним временем создания

13.11.2019, 20:44. Показов 6382. Ответов 3

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые. Сразу к делу. Появилась необходимость вычислить, какой файл в папке был создан раньше всех по дате создания и, собственно, удалить его. Написал такую функцию, но что то мне подсказывает, что можно сделать это красивее и более pythonic. Подскажите пожалуйста, у кого есть идеи.
Суть алгоритма: в цикле сравниваем поочередно файл со следующим за ним файлом. Если время создания первого меньше, ставим его на место второго и сравниваем уже со следующим( с третьим файлом), если второго меньше, сравниваем со следующим и тд. и тд.
Функция рабочая. Буду рад любым идеям.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def checkdir(path): # принимаем путь
    count = 0
    needfile = ''
    filelist = os.listdir(path) #считываем файлы в папке(предположим в папке только файлы)
    for file in range(0, len(filelist)): #проходимся по списку файлов
        if file == len(filelist) - 1: #для корректного сравнения, алгоритму требуется стоппер
            break
        afile = os.path.getctime(path + f'{filelist[count]}') #сканим время создания первого файла
        afilename = (filelist[count])
        bfile = os.path.getctime(path + f'{filelist[file + 1]}') #второго файла
        bfilename = filelist[file + 1]
        '''далее сравниваем float показателей времени создания и меняем наши каунты'''
        if afile < bfile:
            needfile = filelist[count]
        else:
            needfile = filelist[file + 1]
            count = file + 1
            continue
    os.remove(path + needfile)
    print(needfile)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2019, 20:44
Ответы с готовыми решениями:

Из файлов в корневом каталоге на заданном устройстве выбрать файл с самым поздним временем создания
е). Из файлов в корневом каталоге на устройстве c: выбрать файл с самым поздним временем создания.

Как получить разницу между текущем временем и временем создания файла?
Пробую так #include &lt;time.h&gt; time_t timer; time(&amp;timer); тут timer = 1418974297 милисекунд далее получаю время создани...

6 способов создания файла и папки
Здравствуйте, Если кто знает 6 способов создания файла 6 способов создания папки 2 способа создания ярлыка, напишите, пожалуйста.

3
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
13.11.2019, 21:03
Лучший ответ Сообщение было отмечено PsyPerception как решение

Решение

PsyPerception, "на подумать":
Python
1
2
3
>>> pairs = sorted(((os.path.getctime(name),name) for name in os.listdir() if os.path.isfile(name))) 
>>> pairs[-1]
# Выведет последнюю пару дата создания, имя
можно без времени просто имя сохранять, это я для того, чтобы показать. Ну и проверяю, что файл.
1
0 / 0 / 1
Регистрация: 26.11.2016
Сообщений: 19
13.11.2019, 21:51  [ТС]
Welemir1, Ваш ответ прям супер pythonic, мне нравится. Но при запуске вышего примера у меня ругается на выход за диапазон списка. IndexError: list index out of range
Пока сам до чего дошел в плане улучшения, это вот.

Python
1
2
3
4
5
6
7
8
9
10
11
import os
 
def checkdir(path): # принимаем путь
    sortfile = {}
    filelist = os.listdir(path)
    for file in filelist:
        sortfile[f'{file}'] = os.path.getctime(f'{path}\\' + file)
    needfile = max(sortfile)
    print(needfile)
 
checkdir('C:\\Users\\Admin\\Desktop\\out')
Добавлено через 23 минуты
Welemir1, хотя, все работает. Немного подумав, я понял что к чему.
Python
1
sorted()
великая вещь.

Python
1
2
3
4
5
6
import os
 
def checkdir(path): # принимаем путь
    pairs = sorted(((os.path.getctime(f'{path}\\' + name), name) for name in os.listdir(path) if os.path.isfile( f'{path}\\' + name)))
    needfile = pairs[0][1]
checkdir('C:\\Users\\Admin\\Desktop\\out')
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
13.11.2019, 21:55
PsyPerception, и в питоне много таких вещей, которые могут упростить ряд задач, изучение матчасти принесет немало пользы. По сравнению с другими языками порой прямо очень удобно, коротко и читаемо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2019, 21:55
Помогаю со студенческими работами здесь

Удаление файла из папки
написал новостную ленту к каждой новости прикреплена фотка, она хранится в БД и папке. у меня 2 вопроса по поводу удаления новости: ...

Удаление файла/папки
Уверен, что в винде за удаление файлов/папок отвечает какая-то программа (или ее часть). Если нет - поправьте. Мне хочется заменить тот...

Удаление файла из папки
Удаление файла из папки.. ошибка: Warning: unlink(gallery/img_cat_mini/795264f7328ed10c42.jpg) : No such file or directory in...

PHP - Удаление файла из папки
&lt;input name=&quot;edit&quot; autocomplete=&quot;off&quot; id=&quot;editid&quot; type=&quot;text&quot;&gt; &lt;button type=&quot;submit&quot;&gt;Удалить&lt;/button&gt; Как при нажатии на кнопку...

Удаление файла из папки appdata
Есть несколько файлов, все они хранятся в папке %appdata%\Microsoft\sometxt.txt Их необходимо удалить. Думаю можно путем получения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru