Autor
|
Tema: TypeError: 'str' object cannot be interpreted as an integer(python) (Leído 2,981 veces)
|
El mas antiguo
Desconectado
Mensajes: 94
|
Hola gente, ¿ cómo están? Créanme que pase un rato buscando la manera de solucionar esto, pero como es la primera vez que trabajo con archivo binario no hay manera de conseguirlo.- Siendo prejuicioso, debo decir que debe ser algo muy simple lo que me falta, pero no me cae la ficha.- Esto tiene que ver con el post anterior, quiero medir el peso en disco de un archivo plano y uno binario.- https://foro.elhacker.net/scripting/bases_de_datos_utilizando_archivo_txt_en_python-t516456.0.html
def main(): otra=[f"{x}, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo" for x in range(1,100_001)] with open("numeros.bin","wb") as archivo: archivo.write(bytearray(otra)) if __name__ == "__main__": main()
Slds. Daniel ☕☕☕
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.696
🏴 Libertad!!!!!
|
Hay que aprender a leer los errores: Traceback (most recent call last): File "f.py", line 7, in <module> main() File "f.py", line 4, in main archivo.write(bytearray(otra)) TypeError: 'str' object cannot be interpreted as an integer Basicamente dice que le estas pasando un list a la funcion y esta esperaba un Integer o un string, si buscamos la documentacion de esa funcion dice que: bytearray() Parameters bytearray() takes three optional parameters:
source (Optional) - source to initialize the array of bytes. encoding (Optional) - if the source is a string, the encoding of the string. errors (Optional) - if the source is a string, the action to take when the encoding conversion fails (Read more: String encoding)
Hay varios ejemplos: https://www.programiz.com/python-programming/methods/built-in/bytearrayEl ejemplo tendria que quedar asi: def main(): otra=[f"{x}, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo" for x in range(1,100_001)] with open("numeros.bin","wb") as archivo: archivo.write(bytearray(''.join(otra),'utf-8'))
if __name__ == "__main__": main()
Se realiza un join por que bytearray no puede recibir una Lista Por cierto esos strings dificilmente van a ocupar menos espacio.
|
|
|
En línea
|
|
|
|
El mas antiguo
Desconectado
Mensajes: 94
|
Bueno, al fin, ahora funciona como lo esperado… def main(): otra=[f"{x}, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo" for x in range(1,100_001)] with open("numeros.bin","wb") as archivo: archivo.write(bytearray(''.join(otra),'utf-8')) if __name__ == "__main__": main()
Slds. Daniel ☕☕☕
|
|
|
En línea
|
|
|
|
Danielㅤ
Desconectado
Mensajes: 1.681
🔵🔵🔵🔵🔵🔵🔵
|
Hola, también podes hacer la conversión del tipo de variable antes de la apertura del archivo, es decir desde la misma variable en donde se crea la cadena, de hecho yo lo haría de esa manera: def main(): otra = "".join([f"{x}, Yo vivo en este mundo pero no pertenezco a las leyes de este mundo" for x in range(1,100_001)]) with open("numeros.bin","wb") as archivo: archivo.write(bytearray(otra)) if __name__ == "__main__": main()
Una pregunta, que software editor de códigos de programación estas usando?, te recomiendo el que yo siempre use que es el Notepad++. Saludos
|
|
« Última modificación: 17 Noviembre 2022, 23:20 pm por Danielㅤ »
|
En línea
|
|
|
|
El mas antiguo
Desconectado
Mensajes: 94
|
Hola Dani, ¿cómo estás?, muy interesante, me gusta esa manera.- En cuanto al IDE utilizo Thonny para cosas chicas y cuando lo que estoy estudiando se pone más complicado, PyScripter.-
Slds. Daniel ☕☕☕
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Necesito ayuda sobre. OBJECT& operator= (const OBJECT& right)
Programación C/C++
|
anonimo12121
|
6
|
3,465
|
25 Agosto 2012, 18:52 pm
por anonimo12121
|
|
|
(Python) TypeError: can't multiply sequence by non-int of type 'str'
Scripting
|
Linton
|
9
|
6,819
|
17 Febrero 2013, 09:36 am
por Linton
|
|
|
[Python 2.7] str object is not callable en file.mode('w')[cerrado]
Scripting
|
flacc
|
2
|
2,766
|
7 Septiembre 2013, 06:17 am
por flacc
|
|
|
[Python 3] TypeError: an integer is required (got type str)
Scripting
|
n1sen
|
1
|
3,441
|
16 Noviembre 2017, 01:54 am
por n1sen
|
|
|
post with postman object with object atribute
Desarrollo Web
|
Beginner Web
|
1
|
2,488
|
16 Junio 2020, 06:08 am
por [u]nsigned
|
|