Jak mogę zapisać bajt w pliku Python 3 bez znajomości kodowania?
W Pythonie 2.x z obiektem „plikopodobnym”:
sys.stdout.write(bytes_)
tempfile.TemporaryFile().write(bytes_)
open('filename', 'wb').write(bytes_)
StringIO().write(bytes_)
Jak zrobić to samo w Pythonie 3?
Jak napisać odpowiednik tego kodu w Pythonie 2.x:
def write(file_, bytes_):
file_.write(bytes_)
Uwaga:
sys.stdoutnie zawsze jest semantycznym strumieniem tekstowym. Czasami warto pomyśleć o tym jako o strumieniu bajtów. Na przykład,
stwórz zaszyfrowany katalog archiwum/na zdalnej maszynie
http://www.pixelbeat.org/cmdline.html
:
tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
W tym przypadku nie ma sensu używać Unicode.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
2 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Jak wyjaśnić
dokumenty
http://docs.python.org/py3k/li ... stdin
możesz także strumienie, aby były domyślnie binarne.
Powoduje to dostęp do głównego bufora bajtów.
To jest już bajt API.
Jak można się spodziewać po „b”, jest to bajtowe API.
to bajtowy odpowiednik .
EDYCJA: działa tylko z dowolnymi plikami
dwójkowy
obiekt plikopodobny. Więc ogólnym rozwiązaniem jest po prostu znalezienie odpowiedniego API.
Anonimowy użytkownik
Potwierdzenie od:
https://docs.python.org/3.3/li ... 3open
https://docs.python.org/3.3/li ... 3open