TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #22 · 19 јан.

Заметка начинающим, которые часто сталкиваются с подобной непоняткой. Ситуация следующая, есть список файлов: 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

Hashtags

Резултати

Пронајдени 3 слични објави

Пребарај: #inmo

当前筛选 #inmo清除筛选

#GotThis#Hardware#INMO#AR_Glasses INMO Air2 由一副无线一体机眼镜和一个蓝牙戒指构成的个人AR眼镜终端方案。 可独立运行,可自行安装App。 双目垂直阵列光波导显示模组,640x400分辨率。 紫光展锐 W517 穿戴硬件平台, 2GB RAM,32GB eMMC,Android 9 (32位)。 450mAh电池,最高可提供6小时的通知提醒续航能力,或最高提供2小时持续亮屏使用续航能力。磁吸充电数据线。 - - - 看完了苹果的PPT,不如看一下这个现在就能¥3999预定然后带回家的眼镜? 使用体验上可以这么形容:把一块智能手表糊到了脸上,在上面跑电视盒子里的软件,操作模式也是电视盒子软件的方向键加一个确定和返回。 但重点是:它能用。真的能用。 相比于第一代的INMO Air来说,性能和可用性提升了不少。双目显示也让单眼看着难受的问题也彻底解决了。第一代现在看起来就像是个玩具一样。 至于这个眼镜和其他市面上的产品相比的优势: 1. 垂直阵列光波导光学方案,从正面是看不到用户所看到的画面的,隐私性强,并且通透性很好,几乎就是普通透明玻璃一样。。虽然代价是分辨率不行,光学模组成本高,亮度对比度相对较差一些。 2. 至少设计上像是个普通眼镜。得益于光波导方案的高通透性,可以做到几乎透明的镜片。配合这个可能要捐献时间的黑框眼镜外观,可以作为日常佩戴的眼镜使用。别的各种所谓的AR眼镜设计造型都非常夸张,戴着出门生怕别人不知道你是个十足的怪咖。 3. 无线一体机设计,可以独立运行软件。手机App只是一个补充的功能,提供类似智能手表或者手环的消息推送,以及一些辅助功能信息的显示。比起市面上那一推必须插着手机才能用的所谓的AR眼镜们来说,能独立运行这才是AR应该有的样子,而不是单纯的作为一个手机副屏在旁边吃灰。 // 不过小厂自然有小厂的问题。 // 比如因为品控问题,预售发货直接拖了一整个月。 // 原计划4月30日发的,硬是拖到6月3日。 // 但小厂的好处是:他们真的愿意听用户的意见。 // 操作方式除了 上下左右+确定+返回 的遥控器按键模式可以用于戒指和右侧触控板操作外,戒指还支持空中飞鼠模式,允许控制鼠标指针来做全屏点击。 // 目前来说画饼的功能: // 1. 眼镜本身支持的双目显示在硬件上实际上支持双目分别显示,也就是3D画面模式。只是分别双目显示的这个功能暂时还没有在SDK内开放。 // 2. 眼镜提供了全球最轻量的SLAM算法,可以同时使用传感器融合和右侧黑白广角相机来实现6DoF空间定位。但目前没有实装。 // 3. INMOVERSE元宇宙应用,实现“线下元宇宙结合”。目前没有实装。 // 4. 接听电话和蓝牙耳机功能。预计在6月份的OTA中推送。