Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
[PAMERAN HKN KEMENKES 2018]
HARI KE-2
•
https://www.instagram.com/p/BqD6NlXg2dG/?utm_source=ig_share_sheet&igshid=18320bq7l55n5
•
Hari kedua "Pameran Pembangunan Kesehatan dan Produk Kesehatan Dalam Negeri" di ICE BSD, Tangerang, tanggal 9 November 2018, stand GeMa CerMat (Gerakan Masyarakat Cerdas Menggunakan Obat) semakin ramai. Pengunjung datang pengunjung untuk konsultasi tentang penggunaan obat atau sekedar mencari informasi tentang obat. Layanan ini diberikan oleh APOTEKER Agent of Change (AoC) GeMa CerMat dari Kota dan Kab. Tangerang, Banten.
•
Siswa-siswi salah satu SMK jurusan kesehatan di Tangerang sengaja datang ke pameran untuk mempelajari program kesehatan dan produk kesehatan. Di stand GeMa CerMat, para siswa/i SMK ini mendapatkan penjelasan dan edukasi singkat dari Kepala Seksi Peningkatan Penggunaan Obat Rasional (POR) Erie Gusnellyanti, S.Si, Apt, MKM dan Apoteker AoC Tangerang.
•
Edukasi yang diberikan yaitu tentang cara memilih, mendapatkan, menggunakan, menyimpan dan membuang obat dengan benar. Berbagai hadiah berupa souvenir GeMa CerMat diberikan pada siswa yang aktif bertanya dan menjawab pertanyaan. Edukasi ini juga diberikan di stand PP Ikatan Apoteker Indonesia (IAI) dari apoteker Fikriyansyah dari IYPG (Indonesian Young Pharmacists Group).
•
Pengunjung stand GeMa CerMat mendapatkan paket edukasi tentang cara memilih, mendapatkan, menggunakan, menyimpan dan membuang obat dengan benar, pin, komik "Yuk Kenali Obat", lembar balik dinding dan kartu e-money edisi GeMa CerMat (EgN).
•
Musik latar: jingle "GeMa CerMat" ciptaan Umy Qalsum, S.Si, Apt, Kasi Kefarmasian Dinkes Kab. Polewali Mandar, Sulawesi Barat.
#gemacermat#gemacermattigatahun#gemacermathkn#harikesehatannasional2018#pameranhkn2018#gayahidupsehat#kesehatan#obat#informasiobat#apotekerindonesia#apotekermuda
[PAMERAN HKN KEMENKES 2018]
HARI KE-1
•
https://www.instagram.com/p/BqDzwoNAkQr/?utm_source=ig_share_sheet&igshid=xj23kw9swliq
•
Dalam rangka memperingati Hari Kesehatan Nasional ke-54 tanggal 12 November 2018, Kementerian Kesehatan RI telah menyelenggarakan "Pameran Pembangunan Kesehatan dan Produk Kesehatan Dalam Negeri". Pameran bertempat di ICE BSD, Tangerang, tanggal 8 - 10 November 2018.
•
Pameran yang diselenggarakan setiap tahun ini dibuka untuk seluruh masyarakat umum, menyajikan berbagai pelayanan kesehatan gratis bagi pengunjung, program kesehatan pemerintah dan organisasi profesi kesehatan, zona inovasi riset, galeri alat kesehatan produksi dalam negeri dan berbagai produk farmasi, alat kesehatan, perbekalan kesehatan rumah tangga (PKRT), kosmetika, makanan dan minuman.
•
Peserta pameran antara lain Kementerian Kesehatan, Dinas Kesehatan Propinsi, Organisasi Profesi Kesehatan, Asosiasi Produsen Kesehatan, Rumah Sakit, produsen dan distributor produk kesehatan, dll.
•
Salah satu pelayanan kesehatan yang disajikan oleh Kementerian Kesehatan yaitu Layanan Konsultasi dan Informasi Obat di stand GeMa CerMat (Gerakan Masyarakat Cerdas Menggunakan Obat). Stand ini setiap hari ramai didatangi pengunjung yang konsultasi tentang penggunaan obat atau sekedar mencari informasi tentang obat. Layanan ini diberikan oleh APOTEKER Agent of Change (AoC) GeMa CerMat dari Kota dan Kab. Tangerang, Banten.
•
Pada hari pertama, Sabtu, 8 November 2018, Ibu Menteri Kesehatan berkesempatan mengunjungi stand GeMa CerMat didampingi oleh Direktur Pelayanan Kefarmasian, Dra. R. Dettie Yuliaty, Apt, M.Si. Menkes menyampaikan apresiasi atas layanan yang diberikan apoteker dan pada program GeMa CerMat. Selain itu stand juga dikunjungi oleh Kepala Dinas Kesehatan Prop. Sulawesi Tenggara dan pejabat lainnya dari Kemenkes dan Dinas Kesehatan. (EgN)
•
Musik latar: jingle "Ayo Bergerak" ciptaan Umy Qalsum, S.Si, Apt, Kasi Kefarmasian Dinkes Kab. Polewali Mandar, Sulawesi Barat.
#gemacermat#gemacermattigatahun#gemacermathkn#harikesehatannasional2018#pameranhkn2018#gayahidupsehat#kesehatan#obat#informasiobat#apotekerindonesia#apotekermuda
[TIGA TAHUN GEMA CERMAT]
•
13 November 2015 - 2018, tiga tahun GeMa CerMat hadir mengabdi untuk negeri. 🎊🎉 Terus berkarya untuk mencerdaskan masyarakat, mewujudkan rasionalitas penggunaan obat, menuju Indonesia SEHAT.
•
Semoga program ini terus bergulir seperti bola salju, hingga bisa menyentuh seluruh lapisan masyarakat, menggapai seluruh pelosok nusantara. Aamiin.. 😇.
•
Untuk semua Dinas Kesehatan Propinsi/Kab/Kota dan Agent of Change (AoC) GeMa CerMat, para kader, serta semua stakeholder yang terlibat, ayo bergerak, tetap semangat, terus melangkah, yakinlah kita akan sampai ke tujuan. 💪💪💪
•
https://instagram.com/p/BqGb8RNgfhu/
•
#jangankasihkendor
#gemacermattigatahun#gemacermat#cerdasgunakanobat#gemacermathkn#hkn2018#harikesehatannasional2018#dukunggermas
[PAMERAN HKN KEMENKES 2018]
HARI KE-3
•
https://www.instagram.com/p/BqD_Lk8g-fb/?utm_source=ig_share_sheet&igshid=fvqpr2jm7f4p
•
Gerakan Masyarakat Cerdas Menggunakan Obat (GeMa CerMat) dicanangkan oleh Menteri Kesehatan RI, Prof. Dr. Nila Moeloek, SpM (K) tanggal 13 November 2015, bersamaan dengan pembukaan "Pameran Pembangunan Kesehatan dan Produk Kesehatan Dalam Negeri" di JI Expo Kemayoran, Jakarta Pusat.
•
Dalam rangka memperingati "Tiga Tahun GeMa CerMat" dan Hari Kesehatan Nasional ke-54, diluncurkan Senam GeMa CerMat. Senam bersama masyarakat diadakan oleh Dinas Kesehatan Propinsi/Kabupaten/Kota dan Agent of Change (AoC) GeMa CerMat di seluruh Indonesia. Video tutorial senam dari AoC Kab. Sleman, DIY ada di channel youtube GeMa CerMat, atau unduh dari link: bit.ly/SenamGemaCermat
•
Kemenkes RI dan AoC Prop. Banten mengadakan Senam GeMa CerMat bersama pengunjung Pameran HKN ke-54 di ICE BSD, Tangerang, Sabtu, 10 November 2018. Kegiatan dibuka oleh Direktur Pelayanan Kefarmasian, Dra. R. Dettie Yuliaty, Apt, MSi. Diikuti penayangan video klip lagu "GeMa CerMat" dan "Tanya Lima O" dari AoC Kab. Polewali Mandar, Sulawesi Barat. Selanjutnya AoC GeMa CerMat Tangerang Selatan menampilkan edukasi tentang penggunaan obat dalam bentuk operet.
•
Audiens acara edukasi GeMa CerMat mendapat hadiah quiz berupa souvenir menarik. Salah satu pengunjung dari Instalasi Farmasi Kab. Tangerang yang dapat menjawab pertanyaan terkait GeMa CerMat, mendapat doorprize TV 32 inch. Hadiah diserahkan oleh Direktur Jenderal Kefarmasian dan Alat Kesehatan Kemenkes RI, Dra. R. Dettie Yuliaty, Apt, MSi.
•
Pada hari terakhir pameran, stand GeMa CerMat tetap ramai didatangi pengunjung untuk konsultasi dan informasi tentang penggunaan obat dari APOTEKER AoC GeMa CerMat Kota & Kab. Tangerang. (EgN).
•
Fanpage FB: Cerdas Gunakan Obat
Twitter & IG: @gemacermat
Telegram: http://t.me/cerdasgunakanobat , http://t.me/diskusiobat
Email: [email protected]
•
Musik latar: jingle "Tanya Lima O" ciptaan Umy Qalsum, S.Si, Apt, Kasi Kefarmasian Dinkes Kab. Polewali Mandar, Sulawesi Barat.
#gemacermat#gemacermattigatahun#gemacermathkn#harikesehatannasional2018#pameranhkn2018#gayahidupsehat#kesehatan#obat#informasiobat#apotekerindonesia#apotekermuda#senamgemacermat