In Python 2.x mit 'Datei-like' Objekt:Wie schreibt man Bytes in eine Datei in Python 3, ohne die Codierung zu kennen?
sys.stdout.write(bytes_)
tempfile.TemporaryFile().write(bytes_)
open('filename', 'wb').write(bytes_)
StringIO().write(bytes_)
Wie 3 das gleiche in Python zu tun?
def write(file_, bytes_):
file_.write(bytes_)
Hinweis: sys.stdout
ist nicht immer semantisch ein Textstrom
Wie 2.x Code Äquivalent dieser Python zu schreiben. Es könnte nützlich sein, es manchmal als einen Bytestrom zu betrachten. Zum Beispiel make encrypted archive of dir/ on remote machine:
tar -c dir/ | gzip | gpg -c | ssh [email protected] 'dd of=dir.tar.gz.gpg'
Es gibt keinen Grund zur Verwendung von Unicode in diesem Fall.
Gibt es eine Möglichkeit allgemeine Funktion zu schreiben, ohne eine solche zu geben greifen Überprüfung als 'isinstance (file_, io .TextIOWrapper) ', etc. – jfs
@JF, Python 3 wurde speziell entwickelt, um den Text v. Binary divide richtig zu behandeln. Ohne die Codierung zu kennen, gibt es keinen richtigen Weg, um zwischen Binär und Text zu wechseln. Es gibt also keine Möglichkeit, eine allgemeine Funktion zu schreiben, die Bytes in einen Text-Stream schreibt. Dive Into Python 3 hat dazu einen guten Artikel (http://diveintopython3.org/strings.html). –
Die Frage bezieht sich speziell auf * Bytes *. Zum Beispiel "os.write (sys.stdout.fileno(), bytes_)". – jfs