Один из самых удобных способов записать данные это использование готовых форматов, такие как JSON или YAML.
Из плюсов такого подхода стоит отметить вот что:
🔸 готовый, повсеместно используемый и поддерживаемый формат
🔸 простой и понятный файл, удобочитаемый для человека
🔸 можно легко редактировать в любом текстовом редакторе без специальных программ и библиотек
Но есть и минусы
🔹 затраты времени при записи файла (кодирование данных в нужный формат строки)
🔹 затраты времени при чтении файла (декодирование данных в Python объекты)
🔹 размер файла увеличивается из-за разметки данных (скобки, запятые, переносы, отступы...)
🔹 перед записью все данные должны быть помещены в память в полном объёме (не всегда)
🔹 при чтении необходимо считать весь файл в память и только потом декодировать данные
Если нужно писать немного данных в несколько файлов, то затраты по времени не ощутимы. Обычно это файлы конфига или какие-либо метаданные. Это отличный вариант под такие задачи.
Есть и другой поход к записи файлов - это бинарные файлы. Используется, когда данных достаточно много и никто их не собирается читать глазками😳.
🔸 очень быстрая запись
🔸 чтение значительно быстрей чем JSON, YAML итд
🔸 размер файла значительно меньше, так как нет разметки
🔸 можно записывать данные по мере поступления не загружая всё в память
🔸 можно извлечь любую часть данных независимо
Из минусов
🔹 нужно определить свой формат записи данных (если не используете готовую спецификацию определённого формата)
🔹 не получится открыть файл и визуально понять что там записано, а для чтения файла потребуется знать его спецификацию.
🔹 не так-то просто создать такой файл без специальной библиотеки
В таком виде удобно записывать большой массив любых однородных данных. Например, мониторинг валютной биржи или кэшированная анимация 3D геометрии.
(Это не означает что нельзя записать данные разного типа, просто это будет не так удобно)
Представьте себе JPG-картинку. По сути это немного мета-информации и большой массив пикселей. Тоже самое со звуком или видео файлом. Поэтому, если вы попробуете открыть картинку в текстовом редакторе вы увидите что-то вроде такого
f15d cd29 a564 4578 ...
09e2 9bc4 a696 1253 ...
84e9 4de1 3b23 c24a ...
2534 5161 28e0 709d ...
...
Это и есть записанные байтики. И для их чтения требуется определённый софт который знает что с ними делать. Под каждый тип файла.
К чему это я? Читайте в следующем посте...
#tricks#basic
最近发现的一些 RSS Feed #源 分享: 第 16 期
1️⃣「(Unofficial) Apple Developer System Status Feeds」
2️⃣「The British Weird RSS Starter Pack」
3️⃣「An RSS feed for Docker image updates」
4️⃣「RSS Feeds for Humans」
5️⃣「Awesome Dev News: Curated news for developers. Updated every hour」
6️⃣「BBC News RSS Feeds (that don't suck!)」
7️⃣「Discovering via social media without being on social media」
8️⃣「GeoFeeds: a single, unified feed-of-feeds from geo-related/adjacent blogs」
9️⃣underlap.org's blogroll
🔟「Spoken Wikipedia Podcast RSS Feeds」 🎙
1️⃣1️⃣「A daily editorialization of Hacker News (with RSS)」
1️⃣3️⃣「BlogFlock: RSS feeds in public」
1️⃣4️⃣「Only Human Blogs」
1️⃣5️⃣「Ye Olde Blogroll: a humanly curated list of fine personal & independent blogs that are updated regularly」
🔸上一期:【15】
最近发现的一些 RSS Feed #源 分享: 第 15 期
1️⃣「Blogroll Network Map」
2️⃣Tristan's RSS Feeds
3️⃣CSS JOY Webring's OPML
4️⃣Justin McAfee's OPML
5️⃣「Large collection of RSS feeds in the AI space」
6️⃣「Here's a list of my feeds」
7️⃣「International newspapers with English-language RSS」
8️⃣「Going beyond the State of the Art: between scientific literature and RSS Feeds」
9️⃣「weekly0 - 优质周刊集合」
🔟Dan Q's Blogroll
1️⃣1️⃣「HackTuber News」
🔸上一期:【14】
最近发现的一些 Feed #源 分享: 第 12 期
1️⃣「Attention arXiv users: Re-implemented RSS」
2️⃣X友 Andrew Bamboo 的 RSS Feed 分享
3️⃣「博客聚合平台 RSS 订阅 - BlogFinder & 博友圈 & 十年之约」
4️⃣「An RSS Feed for the Google Chrome Developer Blog」
5️⃣「Stay up with the latest movies and TV shows with filtered JustWatch RSS feeds」
6️⃣「Scala News - A Community Crowd Sourced newsletter using RSS」
7️⃣「A collection of RSS feeds and links to the major scientific marketing journals」
8️⃣「南京大学 Linux User Group 收集的同学们的 Blog」
9️⃣「RSS feed (JSON & Atom) generator for official game news from Hoyolab.」
🔸上一期:【11】
最近发现的一些 Feed #源 分享:第2期
1️⃣「2021 V2EX RSS 订阅分享大会」
2️⃣ 电报频道:「Find Blog👁发现博客」
3️⃣ RPG feed (755 blogs) shared by twitter.com/yochaigal1
4️⃣「Refined Blog: A Curated List of RSS Feeds for Software Engineering Blogs」
5️⃣「Curated list of sources for tech, finance and ongoing learning & improvements」
6️⃣「Curated list of personal blogs on any topic, by mataroa.blog」
🔸 往期直达:1
最近发现的一些 Feed #源 分享: 第 7 期
1️⃣「Feed43 生成 RSS 订阅源分享」
2️⃣「A Big Pile of Personal Developer & Designer Blogs in an OPML File」
3️⃣「My RSS Setup」
4️⃣「Hacker News Frontpage Digest Feed」
5️⃣「A huge list of AI/ML news sources」
6️⃣「ooh! directory」: A collection of 1369 blogs about every topic
7️⃣「A list of RSS feeds maintained by the City of Columbus on GovDelivery」 #开源
🔸往期直达:123456
最近发现的一些 RSS Feed #源 分享: 第 14 期
1️⃣BestBlogs.dev 的订阅源
2️⃣Isaac's feeds
3️⃣Robert's Feed2Pages
4️⃣「AI 总结 Hacker News 上的链接,支持 RSS /中英文」#V2EX
5️⃣V2EX Xml News Aggregator 的 Feed 收录贴
6️⃣Harsh Browns's Blogroll
7️⃣「How I Try To Keep Up With The Data Tech World (A List of Data Blogs)」
8️⃣「Papers with Code RSS Feeds」
9️⃣「Aggregate blog posts discussed in tech YouTube channels like Theo - t3.gg, ThePrimeTime, etc」
🔟「NetNewsWire and RSS Recommendations」
1️⃣1️⃣「常见的英语新闻 RSS 采集地址」
1️⃣2️⃣「一个聚合AI相关节目的播客 RSS」
🔸上一期:【13】