Forum
>>
Principianti
>>
Scrivere un file in binario attraverso python
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da ThisMan |
2018-09-04 15:00:52 - Scrivere un file in binario attraverso python
|
Salve a tutti, volevo sapere in che modo fosse possibile, avendo dei valori esadecimali, scriverli all'interno di un file attraverso python.
Per esempio l'utente dà il valore "FF" in esadecimale, e il programma lo legge, apre un nuovo file (o uno già esistente) e aggiunge in coda il valore FF all'interno del file, cosicché quando lo si apre con un editor esadecimale compaia FF Non so se mi sono spiegato bene, in ogni caso grazie dell'attenzione |
|
Scritto da Claudio_F |
2018-09-04 18:31:43 - Re: Scrivere un file in binario attraverso python
|
Un file binario è composto da byte.
Ogni byte contiene un valore da zero a duecentocinquantacinque. Questo valore, mettiamo duecentocinquantacinque, può essere rappresentato a video in diversi modi: esadecimale 'FF', binario '11111111', decimale '255' ecc. Ma non esiste un "valore esadecimale" in sè stesso. L'utente può certamente inserire la stringa di caratteri FF (che rappresentano il valore duecentocinquantacinque espresso in esadecimale), ma nel file non si devono scrivere i due byte della codifica ASCII dei caratteri 'F', si deve scrivere un solo byte di valore duecentocinquantacinque. Quindi: open('nomefile', 'wb').write(int(stringa_esa, 16)) --- Ultima modifica di Claudio_F in data 2018-09-06 17:42:05 --- *** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione *** |
|
Scritto da ThisMan |
2018-09-04 19:05:02 - Re: Scrivere un file in binario attraverso python
|
Ho provato a fare come dici, ma mi dà questo errore
Ma se provo a convertire un qualunque numero n da 0 a 255 in bytes mi dà come risultato, reiterato n volte, \x00Grazie ancora per l'aiuto! |
|
Scritto da Claudio_F |
2018-09-04 21:45:00 - Re: Scrivere un file in binario attraverso python
|
Giusto, che sciocco, troppi write su Arduino....
Intanto Python2 o 3? Su un file binario si scrivono byte. In Python2 i byte sono le stringhe "standard": .write(chr(int("FF", 16))) In Python3 i byte sono gli oggetti bytes: .write(bytes([int("FF", 16)])) --- Ultima modifica di Claudio_F in data 2018-09-06 17:44:23 --- *** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione *** |
Pagina: 1
Esegui il login per scrivere una risposta.