Один из самых удобных способов записать данные это использование готовых форматов, такие как 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
Apple宣布首席运营官职位交接
Apple 今日 宣布 ,首席运营官 Jeff Williams 将于本月晚些时候正式交接其职责,由现任运营高级副总裁 Sabih Khan 接任。这是公司早已规划好的继任安排。Jeff Williams 仍将继续向 Apple CEO Tim Cook 汇报工作,负责领导 Apple 的顶级设计团队以及 Apple Watch 和健康相关项目。在 Williams 计划于今年晚些时候退休后,Apple 的设计团队将直接向 Tim Cook 汇报。
在 Apple 任职期间,Jeff Williams 建立并完善了全球供应链,支持了 Apple 在全球范围内的业务拓展,包括美国、中国、印度、日本及整个东南亚地区。他还主导了供应商责任工作,为全球员工提供培训和教育项目,提高行业标准。Williams 是 iPod 和 iPhone 项目的关键推动者。他十多年前着手推动 Apple Watch 的开发,并构建了 Apple 的健康战略,帮助用户过上更健康的生活,更好地了解自身健康并获得关键的医疗支持。近年来,他还一直领导 Apple 的顶级设计团队。
#AppleNewsroom
📮 频道 @AppPie
隆重推出 Apple Sports,一款专为体育迷打造的新应用
🔗Apple Newsroom
Apple 今天推出了 Apple Sports,这是一款适用于 iPhone 的免费应用程序,它为体育迷们提供实时比分、统计数据等信息。该应用以速度和简便性为设计宗旨,为用户提供了个性化体验,将他们最喜爱的联赛和球队放在了显著位置,且拥有 Apple 设计的易用界面。Apple Sports 现在已经可以在美国、英国和加拿大的 App Store 中下载。
#AppleNewsroom
📮 频道 @AppPie
Apple 在 iPhone 15 Pro 上推出拍摄空间视频的功能
🔗Apple Newsroom (中国大陆)
更新至 iOS 17.2 后,iPhone 15 Pro 和 iPhone 15 Pro Max 用户现在即可开始录制空间视频——利用这项开创性的全新功能捕捉生活中的宝贵时刻 —— 稍后在 Apple Vision Pro 上重温这些暖心回忆。
#AppleNewsroom
📮 频道 @AppPie
Mac 与 iPad 版 Final Cut Pro 迎来重大升级
🔗Apple Newsroom (中国大陆)
Apple 今日宣布对 Mac 与 iPad 版 Final Cut Pro 进行升级,带来简化工作流的强大新功能。Final Cut Pro 改进时间线导览与归整体验,同时新增简化复杂编辑的新方式。这两个版本的 app 利用 Apple 芯片的强大能效表现,推出对象跟踪器的全新机器学习模型,搭载多个媒体处理引擎的 Mac 机型导出速度大幅提升。iPad 版 Final Cut Pro 推出新功能,进一步提升便携多点触控编辑体验,包括旁白录音功能、扩展的 app 内内容选项、新增调色预设与工作流提升等。上述 Final Cut Pro 更新将于本月晚些时候在 App Store 推出。
#AppleNewsroom
📮 频道 @AppPie