Muchas gracias, Al final lo pude solucionar de las siguiente manera:
... import binascii ... archivo.seek(posicion) valor = binascii.a2b_hex('21') #Almacena el valor HEX en una variable para escribirla archivo.write(valor) ... Un saludo y gracias por vuestra colaboración ;-) 2016-01-27 17:35 GMT+01:00 Chema Cortes <pych...@gmail.com>: > > > El mié., 27 ene. 2016 a las 17:28, Chema Cortes (<pych...@gmail.com>) > escribió: > >> El mié., 27 ene. 2016 a las 16:29, Pixu Kideak (<pixukid...@gmail.com>) >> escribió: >> >>> Estoy con la versión Python 3.5.0 >>> >> >> with open(ficheroLeer, 'r+b') as f: >> f.seek(1) >> f.write(bytes([21]) >> >> Según lo que sea, también podrías usar "literarles": >> >> with open(ficheroLeer, 'r+b') as f: >> f.seek(1) >> f.write(b'\x15') >> > > Creo que he tomado mal los valores hexadecimales de la pregunta original. > Para escribir un '!' en un fichero binario se usaría directamente b'!' > > with open(ficheroLeer, 'r+b') as f: > f.seek(1) > f.write(b'!') > > > >> >> >> >> >>> >>> >>> 2016-01-27 16:21 GMT+01:00 Chema Cortes <pych...@gmail.com>: >>> >>>> >>>> >>>> El mié., 27 ene. 2016 16:12, Pixu Kideak <pixukid...@gmail.com> >>>> escribió: >>>> >>>>> " >>>>> yo intentaría leer el fichero en memoria, cambiaría alli los datos y >>>>> luego volvería a escribir el fichero. Los discos no pueden escribir "un >>>>> byte". >>>>> >>>>> " >>>>> Cuando se esta realizando la asignación archivo = open(ficheroLeer, >>>>> 'r+b') ¿no se estaría trabajando contra el objeto "archivo" qué está en >>>>> memoria? >>>>> O por el contrario, ¿te refieres a volcar todo el contenido del >>>>> fichero en una lista y trabajar contra ésta; una vez finalizado volcar de >>>>> nuevo el contenido de la lista al fichero? >>>>> >>>> >>>> No hace falta bajar tanto de nivel. Lo más seguro es que Python >>>> sobrescriba el fichero completo en disco, pero eso no debe preocuparte. >>>> >>>> Lo que si es importante es saber si usas python3. Los ficheros binarios >>>> usan el tipo bytes y, por lo que dices, no lo estas usando. >>>> >>>> >>>>> Un saludo y gracias, >>>>> >>>>> 2016-01-27 16:00 GMT+01:00 Juan Ignacio <euriba...@gmail.com>: >>>>> >>>>>> yo intentaría leer el fichero en memoria, cambiaría alli los datos y >>>>>> luego volvería a escribir el fichero. Los discos no pueden escribir "un >>>>>> byte". >>>>>> >>>>>> 2016-01-27 14:40 GMT+00:00 Pixu Kideak <pixukid...@gmail.com>: >>>>>> >>>>>>> Buenos días, >>>>>>> >>>>>>> Estoy trabajando con ficheros binarios pero tengo una duda. >>>>>>> >>>>>>> Lo primero que hago en mi programa es buscar un valor en el fichero, >>>>>>> a partir de esa posición muevo el puntero X posiciones y me interesaria >>>>>>> escribir cierto valor binario y/o HEX en esa posición. >>>>>>> >>>>>>> He intentado con: >>>>>>> >>>>>>> ficheroLeer = '/ruta/mi/fichero.bin' >>>>>>> archivo = open(ficheroLeer,'r+b') >>>>>>> ... >>>>>>> archivo.seek(1) #Esta es la posición en la que me interesa modificar >>>>>>> el contenido. >>>>>>> archivo.write(21) #Digamos que quiero escribir ! - que HEX es 21 - >>>>>>> en esa dirección. >>>>>>> >>>>>>> Pero no consigo escribirlo puesto que parece que write recibe sólo >>>>>>> variables de tipo str. >>>>>>> >>>>>>> ¿Cómo podría escribir HEX21 en el fichero? >>>>>>> >>>>>>> Un saludo y gracias por vuestra ayuda ;-) >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Python-es mailing list >>>>>>> Python-es@python.org >>>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Juan Ignacio Rodríguez de León >>>>>> Móvil: 605 890514 >>>>>> E-Mail: euriba...@gmail.com >>>>>> http://www.elornitorrincoenma >>>>>> <http://www.elornitorrincoenmascarado.com/>scarado.com/ >>>>>> <http://www.elornitorrincoenmascarado.com/> >>>>>> http://descon2.com/ >>>>>> >>>>>> _______________________________________________ >>>>>> Python-es mailing list >>>>>> Python-es@python.org >>>>>> https://mail.python.org/mailman/listinfo/python-es >>>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>>> >>>>>> >>>>> _______________________________________________ >>>>> Python-es mailing list >>>>> Python-es@python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> FAQ: http://python-es-faq.wikidot.com/ >>>>> >>>> -- >>>> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": >>>> http://ch3m4.org/blog >>>> >>>> _______________________________________________ >>>> Python-es mailing list >>>> Python-es@python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> _______________________________________________ >>> Python-es mailing list >>> Python-es@python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >> -- >> Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": >> http://ch3m4.org/blog >> > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > http://ch3m4.org/blog > > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/