Удалите все кроме нового X файлов в ударе

Причина этого в том, что переменная status является объектом типа . Это можно увидеть, выполнив следующее:

import requests
requestt = requests.get("https://www.google.com")

status = (requestt)
print(type(status))

Чтобы получить статус, вам нужно получить доступ к свойству status_code объекта запроса:

import requests
requestt = requests.get('https://www.google.com')

status = requestt.status_code
print(type(status))  # will now return ""

print(status == 200)  # will print "True"

Документация для свойство status_code указано в в документации для библиотеки запросов .

138
задан Matt Sheppard 25 August 2008 в 08:37
поделиться

6 ответов

Если имена файлов не будут иметь пробелов, то это будет работать:

ls -C1 -t| awk 'NR>5'|xargs rm

, Если имена файлов действительно имеют пробелы, что-то как

ls -C1 -t | awk 'NR>5' | sed -e "s/^/rm '/" -e "s/$/'/" | sh

Основная логика:

  • получают список файлов в порядке времени, один столбец
  • получает всех кроме первых 5 (n=5 для этого примера)
  • первая версия: отправьте тех, которые к комнате
  • вторая версия: генерал сценарий, который удалит их правильно
4
ответ дан 23 November 2019 в 23:23
поделиться

Все эти ответы перестали работать, когда существуют каталоги в текущем каталоге. Вот что-то, что работает:

find . -maxdepth 1 -type f | xargs -x ls -t | awk 'NR>5' | xargs -L1 rm

Это:

  1. работы, когда существуют каталоги в текущем каталоге

  2. попытки удалить каждый файл, даже если предыдущий не мог бы быть удален (из-за полномочий, и т.д.)

  3. сбои, безопасные, когда количество файлов в текущем каталоге является чрезмерным и xargs, обычно завинчивали бы Вас по (-x)

  4. , не обслуживает пробелы в именах файлов (возможно, Вы используете неправильную ОС?)

13
ответ дан 23 November 2019 в 23:23
поделиться
find . -maxdepth 1 -type f -printf '%T@ %p\0' | sort -r -z -n | awk 'BEGIN { RS="\0"; ORS="\0"; FS="" } NR > 5 { sub("^[0-9]*(.[0-9]*)? ", ""); print }' | xargs -0 rm -f

Требует, чтобы GNU нашли для-printf и вида GNU для-z, и GNU awk для "\0" и GNU xargs для-0, но обрабатывает файлы со встроенными новыми строками или пробелами.

16
ответ дан 23 November 2019 в 23:23
поделиться

Удалите все кроме 5 (или безотносительно числа) новых файлов в каталоге.

rm `ls -t | awk 'NR>5'`
95
ответ дан 23 November 2019 в 23:23
поделиться
(ls -t|head -n 5;ls)|sort|uniq -u|xargs rm

Это поддержка версии называет с пробелами:

(ls -t|head -n 5;ls)|sort|uniq -u|sed -e 's,.*,"&",g'|xargs rm
85
ответ дан 23 November 2019 в 23:23
поделиться

Игнорирование новой строки означает игнорирование безопасности и хорошего кодирования. wnoise имел единственный хороший ответ. Вот его вариант, в котором имена файлов помещаются в массив $ x

while IFS= read -rd ''; do 
    x+=("${REPLY#* }"); 
done < <(find . -maxdepth 1 -printf '%T@ %p\0' | sort -r -z -n )
8
ответ дан 23 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: