Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
names = [
'image.bmp',
'second.txt.bkp',
'data.db',
'.config.cfg',
'file.ext.bkp'
]
И мы хотим убрать у них окончание ".bkp".
Не знаю зачем, пример довольно надуманный) Но суть он показывает, а это главное.
Те, кто еще не очень знаком с библиотекой os.path или pathlib, вероятно решат обработать имена как строки. И тут вполне подойдет метод строки strip().
Что делает этот метод? Он отрезает указанные символы по обеим сторонам строки. Если ничего не указать, то убирает невидимые символы (пробелы, табуляции и переносы строк).
В нашем случае будет выглядеть вот так:
>>> name.strip('.bkp')
То есть просим удалить строку '.bkp' по краям имени файла, если таковая есть.
Можно применить аналогичный метод rstrip(), чтобы отрезать только справа, но для этого примера используем обычный.
>>> for name in names:
>>> print(name.strip('.bkp'))
image.bm
second.txt
data.d
config.cfg
file.ext
Хм, что-то не то с нашими именами! Что случилось??? Видим нежелательное переименование в именах, где и близко не было указанной строки '.bkp'
А дело всё в том, что данный метод ищет не указанную строку, а указанные символы, и не важно в каком порядке.
Для метода strip() строка '.bkp' это не паттерн для поискаа список символов. Потому он отрезал симовол 'p' от '.bmp' и удалил точку из файла '.config.cfg'.
Как тогда правильно заменить именно паттерн? Для начинающего можно посоветовать метод строки replace(), который как раз использует для замены указанную строку целиком. В нашем примере заменим её на пустую строку.
>>> for name in names:
>>> print(name.replace('.bkp', ''))
image.bmp
second.txt
data.db
.config.cfg
file.ext
Уже лучше, но помните, это лишь пример про strip(). Для работы с именами файлов есть способы и более "правильные", дающие однозначно верный результат. Я взял файлы только в качестве примера. Даже replase() тут может сделать не то что ожидаем.
Просто впредь будьте внимательны с этим strip().
#basic
#TouchDesigner, #TD
Моя мечта и цель создать инструмент для проектирования искусственных нервных схем подобно той которую можно увидеть в фильме "Ева: Искусственный разум". В фильме инженер по искусственному интеллекту используя придуманный шоураннерами редактор настройки ИИ, в основе которого граф вершины которого отражают различные психические качества и их настройки: любопытство, настойчивость, привязанность и т.д. Подобно этому в моём воображении формируется редактор в котором возможно настраивать различные области мозга и связи между ними: облсти коры, мозжечка, ментальная карта таламуса, центры потребностей и удовольствия. В поисках интерфейсных решений я наткнулся на TouchDesigner (TD), это программа для дизайнеров благодаря ей создаются различные крутые инсталляции, где требуйся динамика. Её особенность программирование с помощью специальных нод и организации связей между ними, внутри ноды может быть код или заранее подготовленный алгоритм. TD отвечает главному моему принципу - это визуализация и наглядность. Внутри каждой ноды есть отображение того, что происходит внутри неё. И конечно это работа в реалтайме, пришло врем решать задачи в реалтайме... Конечно, TD это не создан для задач машинного обучения, в нём есть некоторые ограничения для моей работы, но это будет некий прототип, где я отработаю некоторые механики. Здесь есть ноды GLSL, а значит быстрые вычисления на GPU, есть нода python и сила numpy. Во первых, я переношу некоторые свои алгоритмы в TD, пока только в начале. Это послужит началом и прообразом инструмента к которому я стремлюсь, таким же удобным и доступным как TD. Возможно сочетание с тем, что я делал в CogFLUX (https://belkinandrey.github.io/), базовые безусловные рефлексы возможно настроить на нейронах, а когнитивные вычисления на нодах более высокого порядка с заготовленными алгоритмами. Причем всё может работать совместно.
Под хэштегом #TouchDesigner и #TD буду выкладывать этот прогресс. Сейчас на видео самый простой алгоритм кластеризации из статьи https://habr.com/ru/articles/709350/
#Polonia#Sejm
Con 265 voti favorevoli e 193 contrari, Szymon #Hołownia (#TD/#Polska2050|RE) è stato eletto nuovo Presidente del Sejm (Camera bassa).
@OsservatorioEsteri
#Polonia
#KO|EPP|RE|G/EFA, #TD|RE|EPP e #Lewica|S&D hanno annunciato che presenteranno il leader di #PO|EPP Donald #Tusk come candidato a Primo Ministro.
@OsservatorioEsteri
🚀 Analyst Lance Vitanza Initiates Buy Ratings on Three Treasury Companies
Lance Vitanza from TD Cowen has initiated coverage on Nakamoto, SharpLink Gaming, and Strive with Buy ratings. According to NS3.AI, Vitanza has set price targets of $1, $16, and $26 for these companies, respectively. He suggests that these treasury firms have the potential to outperform spot crypto exchange-traded products, provided that cryptocurrency prices recover and the companies continue to increase their token holdings per share.
#LanceVitanza#TD Cowen #Nakamoto#SharpLinkGaming#Strive#BuyRating#TreasuryCompanies#Crypto#TokenHoldings#PriceTargets#BTC
#Polonia
È stata pubblicata la lista del Terzo governo di Donald #Tusk (#PO|EPP):
-Primo Ministro: Donald #Tusk (PO)
-Vicepremier e Ministro della Difesa Władysław #KosiniakKamysz (#TD/#PSL|EPP);
-Vicepremier e Ministro della Digitalizzazione: Krzysztof #Gawkowski (#Lewica/#NL|S&D);
-Ministro della Giustizia: Adam #Bodnar (#KO|EPP|RE|G/EFA);
-Ministro degli Esteri: Radosław #Sikorski (PO);
-Ministro degli Interni: Marcin #Kierwiński (PO);
-Ministra per la Società Civile: Agnieszka #Buczyńska (TD/#Polska2050|RE);
-Ministro delle FInanze: Andrzej #Domański (PO);
-Ministro del Patrimonio Statale: Borys #Budka (PO);
-Ministra dell'Industria: Marzena #Czarnecka;
-Ministra della Famiglia, del Lavoro e delle Politiche Sociali: Agnieszka #DziemianowiczBąk (Lewica/NL);
-Ministra del Clima e dell'Ambiente: Paulina #HennigKloska (TD/Polska2050);
-Ministro dello Sviluppo e della Tecnologia: Krzysztof #Hetman (TD/PSL);
-Ministro delle Infrastrutture: Dariusz #Klimczak (TD/PSL);
-Ministra dell'Uguaglianza: Katarzyna #Kotula (Lewica/NL);
-Ministra della Salute: Izabela #Leszczyna (PO);
-Ministra dell'Istruzione: Barbara #Nowacka (#iPL|RE);
-Ministro dello Sport: Sławomir #Nitras (PO);
-Ministra degli Anziani: Marzena #OkłaDrewnowicz (PO);
-Ministra dei Fondi e delle Politiche Regionali: Katarzyna #PełczyńskaNałęcz (TD/Polska2050);
-Ministro dell'Agricoltura: Czesław #Siekierski (TD/PSL);
-Ministro della Cultura: Bartłomiej #Sienkiewicz (PO);
-Ministro degli Affari Europei: Adam #Szłapka (#N|RE);
-Ministro della Scienza: Dariusz #Wieczorek (Lewica/NL);
-Ministro degli Affari Legislativi: Maciej #Berek;
-Cancelliere presso l'Ufficio del Primo Ministro: Jan #Grabiec (PO);
-Coordinatore dei Servizi di Sicurezza: Tomasz #Siemoniak (PO).
@OsservatorioEsteri