последних стэйбл версий кернелей
мой скрипт:
def kernel_versions = []
def kernel_site = new URL('https://kernel.ubuntu.com/~kernel-ppa/mainline').getText()
kernel_site.readLines().collect {
if (it.split('"').size() > 6) {
version = it.split('"')[7].replace('/','')
kernel_versions.add(version.replaceAll("v",""))
}
}
println kernel_versionsно он выдает все версии
как правильно сортить так чтобы получить примерно такой список ?
['5.10.6', '5.9.16', '5,8,18' ...... ]
println kernel_versions.reverse() последняя строка
не совсем. нужна последняя версия всех мажор версий
а как ты это на петухоне реализовал, ну-ка?
тебе нужно не отсортировать, а поделить сей список на списки для каждой мажорной версии и в каждой найти максимальную, и засунуть в новый список я этого делать не буду
понял, буду пробовать
Ну это двойной цикл делать, такое се
А в чем проблема двойного цикла ?
Да ни в чем, лень
$ cat latest-versions.py import requests from bs4 import BeautifulSoup latest, prev = "", "" result = [] r = requests.get("https://kernel.ubuntu.com/~kernel-ppa/mainline/") if r.status_code != 200: print(f"{r.status_code=}") exit(1) soup = BeautifulSoup(r.text, "lxml") table = soup.find('table') for tr in table.find_all('tr'): for ind, td in enumerate(tr.find_all('td')): if ind == 1: abc = td.text[1:-1].split(".") if len(abc) == 3: a, b, c = abc if latest == f"{a}{b}": prev = f"{a}.{b}.{c}" else: latest = f"{a}{b}" if prev: result = [prev] + result result = [prev] + result print(result)
спасибо, красиво, но мне на груви надо
Обсуждают сегодня