An IO wrapper that reads/writes binary data as base64 into a text file
Project description
Base64File
An IO wrapper that but reads/writes binary data as base64 text, supporting concurrent reading and writing. Similar
to GzipFile
, it simulates most of the methods of a
standard file object (with the exception of readline
).
Usage
base64file.open()
- Similar to
gzip.open()
orio.open()
import base64file
# to write text
with base64file.open('some-file.txt', 'rt', encoding='utf8') as f:
f.write('1234567890')
# to write binary
with base64file.open('some-file.txt', 'rb') as f:
f.write(b'\1\2\3\4\5')
base64file.Base64File
- When opening a Base64File without specifying an underlying file, a filename must be provided, and the usual binary
modes are supported:
r
,rb
,w
,wb
,a
,ab
,x
, andxb
(optional+
to enable concurrent reading/writing, e.g.wb+
). - When opening a Base64File with a specified underlying file, the mode is inherited from the specified file (replacing
text-mode with binary-mode). If a binary-mode file is provided, it is automatically wrapped with
a
TextIOWrapper
.
from base64file import Base64File
# open a new/existing file for concurrent reading and writing
with Base64File('some-file.txt', 'w+') as b:
b.write(b'\0\1\2\3\4')
b.seek(0)
b.write(b'\n')
print(b.read(2)) # prints b'\1\2'
# wrap an existing file (in this example, open for reading)
with open('some-file.txt', 'r') as f:
with Base64File(file_obj=f) as b:
print(b.read(2)) # prints b'\n\1'
print(b.read()) # prints b'\2\3\4'
# if you need to keep the file open, remember to close it
f = open('some-file.txt', 'w+')
b = Base64File(file_obj=f)
b.write(b'\0\1\2\3\4')
b.seek(0)
b.write(b'\n')
print(b.read(2)) # prints b'\1\2'
b.close() # this is necessary, otherwise the final 1-2 bytes may not be written
f.close()
base64file.Base85File and base64file.Ascii85File
- The same as base64file.Base64File, but instead
uses
b85encode()
ora85encode()
- Note that many implementations of base85 are actually Ascii85 (for example, CyberChef.io)
from base64file import Ascii85File
from base64file import Base85File
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
base64file-0.0.12.tar.gz
(10.6 kB
view details)
Built Distribution
File details
Details for the file base64file-0.0.12.tar.gz
.
File metadata
- Download URL: base64file-0.0.12.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b6330870df9aecf875bd03f67b4412f359a8d11e4d1148502b73da5cd7f787a |
|
MD5 | 816e2237fd45aa35aeb040136bb5f581 |
|
BLAKE2b-256 | 1c8bec0fbd5e5b53eb6073f2d9f828830945f1bd99a938bafbb41c64723b19fa |
File details
Details for the file base64file-0.0.12-py2.py3-none-any.whl
.
File metadata
- Download URL: base64file-0.0.12-py2.py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f91956abc9902c9b7247562812620ebab2c569406d84563124454acc4aae74f |
|
MD5 | f5b18fd608ec4e8adb115cc0b4af1c8b |
|
BLAKE2b-256 | 74723da0521bb7f730dd225d5a713ff6db99aa6c5d3f1a416882a3253d7afd8e |