Один из самых удобных способов записать данные это использование готовых форматов, такие как 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
😄Thought
➖➖➖➖➖➖
🔘As a verb thought is the past tense of 'think':
🔜I thought about the problem for a little while.
🔘 an idea or plan.
🔜I've had a thought about what we should do next.
As a plural noun, thoughts can be:
🔘our opinions or beliefs.
🔜What are your thoughts on the best way to learn English?
As an uncountable noun, thought can mean:
🔘‘careful consideration’.
🔜We need to give more thought to this project.
#Thought👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
前些日子在網上衝浪(不知道現在還有沒有人在用 surfing the Internet / surf on the Internet 這樣的說法)時,發現了 NirSoft 這個由開發人員 Nir Sofer 所創建的個人網站。
根據他在關於頁面的說法,這個網站最初建立於 2001 年,用來陳列自己開發的小工具;起初託管在一些免費服務上,後來隨著廣告與惡意使用者逐漸增多,在 2004 年購買了自己的網域。
裡面有許許多多採用 C++ 開發的 Windows 實用小程式,並且據作者所說,這些程式具備可攜性(portable),大多情況下不需要安裝且不會存取註冊表;裡面 Network Monitoring, Internet Related Utilities, Command-Line Utilities, Programmer Tools 和 System Utilities 的部分可以尋尋寶。
作者還有維護一個部落格,目前最新的一篇文章是 2023/08/19 發佈的;長年來都在業餘時間開發小工具,還能樂此不疲且碼耕不輟,這應該是許多開發者想活成的樣子了。
#Thought
在 Do You Want To Be a News Source? Just Change Your Account Name 一文中,提到了過去幾年在 Twitter 上出現的幾個虛假新聞帳號案例,這類帳號通常是由既有的帳號修改使用者名稱(username)以及帳號名稱,而非創建新的使用者,這樣的操作手法需要透過永久 UID 來辨認(可以透過 TwitterID 這個工具查詢與反查)。
__
這個電子報還有其他不錯的文章,比如 How to Find Swarms of Fake Twitter Followers 一文,表示這類假帳號通常具備兩個特徵:
1. 短時間內獲得數百或數千名的假帳號關注
2. 假帳號通常會在固定的時間或時間範圍內創建帳號
文中有提供一段簡單的 Python 程式來辨別上述的特徵,但需要具備 Twitter 開發者帳號並啟用 API 來操作,這在馬總搞了一堆奇妙的操作後,可能得另謀他法了…
#Thought