Заметка начинающим, которые часто сталкиваются с подобной непоняткой.
Ситуация следующая, есть список файлов:
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
Как пелось в песне... не стареют душой ветераны.
А некоторые из них ещё духом и даже телом.
Один британский моряк-ветеран Второй Мировой подвергся нападению грабителей, когда ему было уже за 80. Двое молодых и наглых решили, что дедушка с тростью лёгкая добыча. Подойдя к нему они потребовали у него кошелек. Дед согласился, но попросил достать кошелек из кармана самим, так как ему трудно достать... Артрит там, артроз и всякая такая подагра. Когда один из грабителей наклонился, чтобы залезть в карман за кошельком, то получил от дедушки кулаком в нос. Затем и другому прилетел хук слева, а потом оба ещё получили тростью по жбану, после чего грабители, офигевшие от такого напора жертвы, сделали ноги. Не знали они, что дедушка после гибели своего корабля почти неделю провел в море со сломанной ногой и стал единственным выжившим из всего экипажа, потому что до службы занимался спортом. А после войны стал профессиональным боксером, дрался на ринге, как в перчатках, так и без. Конечно, кошелек не стоит жизни, но ветеран решил дать последний бой и победил. На принцип, видимо, пошёл.
#rn
И смех и грех. В море австралийский крейсер "Канберра" заметил британское судно "Драматик". Обнаружение было обоюдным, так как транспорт начал открыто радировать в эфир, что его преследует военный корабль с тремя трубами. Крейсер потратил десять минут, чтобы связаться с ним и приказал прекратить драматизировать и свернуть трагедию в эфире. #rn
Во время Второй Мировой британцы передали часть своих подводных лодок экипажам из союзных стран. Последние формировались из подводников, бежавших в Великобританию после оккупации их стран Германией, чтобы продолжить борьбу с Гитлером.
Союзные подлодки находились в оперативном подчинении Королевского флота, а в подводных силах метрополии была флотилия, состоявшая из союзных подлодок.
Британские субмарины были переданы норвежским, голландским, греческим, польским экипажам, а также французским из «Свободной Франции».
Но был нюанс. Всем перечисленным экипажам были переданы подлодки типа U, за исключением голландцев, которые получили подлодки типа Т.
Подлодки типа U по своим характеристикам не могли сравниться с типом Т, ни по вооружению, ни по автономности, ни по условиям жизни на борту.
Подлодки тип Т на тот момент были пиком вершины британского подплава - самыми грозными британскими подводными кораблями, способными разом атаковать цель десятью торпедами. Так почему же голландцы были удостоены доверия и получили возможность воевать на тип Т, а другие союзники нет?
Ваши соображения?)
#sub#rn
А документы, граждане, треба носить с собою (с)
Любопытный казус произошел в мае 1940-го, когда британская субмарина остановила в море судно в Норвежском море. Проверка документов выявила британского "купца", который направлялся в Мурманск. Судно было отпущено. Однако, британские подводники не догадались, кого они задержали. Это было британское судно-ловушка, привлекавшее к себе внимание немецких подлодок. Когда британская субмарина была замечена, то командир судна решил не раскрывать себя и ловушка притворилась обыкновенным транспортом. Липовые судовые документы проверку выдержали. ⚓️🇬🇧. #rn#sub
Храбрые итальянские моряки
Британская субмарина "Амбра" схлестнулась в бою с итальянским пароходом "Джима". Так как выходить в торпедную атаку на него было неудобно, британцы решили расправиться со старым судном с помощью 102-мм пушки. Но и у итальянцев тоже была пушка - 76-мм. "Амбра" открыла огонь с трех км, но уже после восьмого выстрела противника была вынуждена быстро смыться с помощью срочного погружения. Причина: итальянцы стреляли настолько метко, что британцами стало ясно - победы в артбою им не одержать. После этого "Амбра" всё-таки попыталась выйти в торпедную атаку, но "Джима", выжимая из своей машины что можно и нещадно тратя уголь, ушёл от ПЛ, которая так и не рискнула всплыть снова. В итоге, густо дымя, уходивший пароход, как бы дразнил противник, который беспомощно сидел под водой.
#rn#sub
"Трудная мишень"
Действуя у побережья Греции британская ПЛ "Торбей" обнаружила любопытный караван. Три буксира, идущие в кильватерной колонне, тащили за собой плавучий док в охранении шести небольших военных кораблей. Док был здоровый более 100 М длиной, плыл с небольшой скоростью. Практически, идеальная мишень, если бы не одно но - осадка целей была тоже небольшая. Командир ПЛ решил, что глубины хода торпед в метр будет достаточно и выпустил по буксирам и доку шесть торпед. И не дождался ни одного взрыва. Судя по всему, торпеды прошли под целями, так как дистанция до них была чуть более 1 км, а цели не меняли курса и скорости.
Потерпев неудачу, британцы плюнули и решили, что надо вообще пустить торпеды по поверхности, так как при такой дальности увернуться цели бы точно не успели. Тогда ПЛ выпустила две торпеды с углублением в 0 и они обе попали в док, потопив его.
#sub#rn
Британская ПЛ "Танталус" обнаружила у Малаккского полуострова и обстреляла небольшой японский каботажник. Первый выпущенный снаряд попал в цель и вызвал пожар в средней части судна, а последующие выстрелы - пламя в машинном отделении. После пяти выстрелов огонь был прекращен, и команда покинула судно. Затем было выпущено еще десять снарядов, чтобы прикончить его. Каботажник назывался "Паханг Мару", он направлялся из Куантана в Бангкок с 75 бочками мазута и 9 бочками смазочного масла. Затем он должен был загрузить 250 тонн риса в Бангкоке для возвращения в Куантан. После гибели судна следующие полчаса у британцев ушли на то, чтобы подобрать выживших, среди которых было девять малайцев, один китаец и один японский солдат. Последний уплыл далеко от остальных и поначалу отказывался от того, чтобы его поднимали. После безуспешной попытки утопиться он в конце концов схватился за трос и был поднят на борт. Японец обгорел и был очень напуган. Командир ПЛ лейтенант-коммандер Маккензи решил избавиться от местного экипажа как можно скорее. Он посадил местный экипаж на борт первой встретившейся китайской джонки. Японец, судя по всему, остался на борту лодки.
#sub#rn
Британский "Лунин".
9 ноября 1941-го командир британской ПЛ "Апхолдер" Д. Ванклин (по итогам войны самый результативный подводник Великобритании) оказался в схожей ситуации, что и командир К-21 Н. Лунин 5 июля 1942-го.
После разгрома британскими крейсерами и эсминцами итальянского конвоя "Дуйсбург" лодка Ванклина атаковала итальянские эсминцы проводивших подбор выживших с судов конвоя. Торпеды "Апхолдер" оторвали корму эсминцу "Libeccio", который после этого не затонул и был взят на буксир другим эсминцем. Позже в тот же день Ванклин атаковал два тяжелых крейсера класса "Trento" тремя торпедами. Согласно итальянским источникам, его целью была оперативная группа, состоявшая из тяжелых крейсеров "Trento" и "Trieste" в сопровождении эсминцев "Granatiere" , "Fuciliere", "Bersagliere" и "Alpino" . После торпедного залпа торпеды повели себя по разному: две пошли в сторону целей, а третья оказалась "бегуном по кругу", начав кружить над подлодкой, ушедшей после залпа на глубину. Там Ванклин услышал два взрыва и шумы тонущего корабля. Когда он подсплыл под перископ, то увидел два крейсера и эсминец. Так как перед торпедной стрельбой Ванклин видел рядом с крейсерами два эсминца, а уже после атаки был виден только один из них, то командир ПЛ решил, что торпеды поразили один из эсминцев, о чем и говорили шумы тонущего корабля. Поэтому Ванклин с чистой совестью посчитал, что в крейсера он не попал, но потопил один из сопровождавших их эсминцев. Что оказалось в реальности? Торпеды "Апхолдер" прошли мимо целей, а услышанные звуки тонущего корабля действительно были звуками тонущего эсминца, но это был поврежденный в предыдущей атаке эсминец "Libeccio", у которого как раз в момент нападения ПЛ на крейсера не выдержали переборки и он пошёл на дно. Вот такая интересная история. Схожесть случаев Ванклина и Лунин большая: оба атаковали группу тяжёлых кораблей, оба в в них не попали и оба предположили, что результатом их атак стало торпедирование эсминца.
#sub#rn
Батюшки, сколько "бегунов по кругу", да только не немецкие или американские, а британские! В сентябре 1941 британская ПЛ два раза выходила в атаку за свой поход и каждый раз в залпе оказывалась неисправная торпеда, начинавшая кружить вокруг лодки. Похоже, что и у британцев были серьёзные проблемы с гироскопами и, но про это известно куда меньше.
#sub#rn
Из любопытного.
Во время похода у побережья Суматры британская ПЛ искала пригодный сампан (азиатская лодка-плоскодонка), нужный для выполнения разведзадания. Сампан нашли. В нем было пять туземцев-сборщиков кокосов и обезьяна, обученная лазить за кокосами на дерево. Всю команду сампана сняли и перевели на ПЛ. Люди то перешли к британцами на борт без проблем, а вот с обезьяной пришлось повоевать, так как она отказалась сдаваться британцами в плен. Так что подводники Его Величества побегали за ней по сампану. Может даже кого-то из них покусали.
#rn#sub