Есть строка: filename = url.rsplit('/', 1)[-1]
В url хранится строка типа "demositecom/4f5D6x.txt"
После выполнения метода rsplit в переменной filename остается 4f5D6x.txt. Если убрать [-1], то переменная filename будет ссылать на список ['demositecom', '4f5D6x'] без .txt.
Я так понимаю сама по себе разбивает строку на элементы списка по символу и с выбранным шагом, но куда девается .txt и в чем суть [-1]? В списках он указывается для указания начальной позиции с последнего элемента, но почему тогда убирается 'demositecom'?
Вот же дурная моя голова, я перемудрил и думал, что [-1] относится именно в методу rsplit по аналогии с выборкой списков.
И еще на счет работы самого rsplit: почему не режется вот эта часть "tp://demo"?
str.rsplit(sep=None, maxsplit=-1)
Return a list of the words in the string, using sep as the delimiter string. If maxsplit is given, at most maxsplit splits are done, the rightmost ones. If sep is not specified or None, any whitespace string is a separator. Except for splitting from the right, rsplit() behaves like split() which is described in detail below.
Сравниваем с кодом, видим, что параметр maxsplit задан и равен 1.