TransWikia.com

Como carregar valores inteiros de um arquivo txt? - Python

Stack Overflow em Português Asked by UserDel on October 10, 2020

Quero carregar um dicionário onde o arquivo texto .txt contém informações do tipo String, porém, quero que os valores sejam carregados do tipo Inteiro.

{'11322567498': '[0],[0]'}

Note que os valores estão sempre sendo carregados como String.

Código que estou usando para carregar os valores em um dicionário:

def carregar_reservas(reserva):
    with open('reservas.txt') as doc:
        for line in doc:
            (cpf, name) = line.split()
            reserva[cpf] = name

One Answer

@UserDel,

A variável name possui caracteres que não podem ser convertidos em número. No caso [, ] e ,

O ideal é limpar sua variável antes de converter.

Usando o comando abaixo, você irá retirar uma série de caracteres indesejados.

name = name.translate({ord(c): "" for c in " !@#$%^&*()[]{};:./<>?\|`~-=_+"})

Perceba que a vírgula não fez parte do comando acima. Entendo que a mesma seja divisor de decimal. Sendo assim, por fim, você precisaria substituí-la por ponto com o replace

name = name.replace(",", ".")

Por fim, transforme em inteiro com int(name) ou float com float(name)

Veja o exemplo abaixo:

>>> name = "!#[10]$, [02]"
>>> name = name.translate({ord(c): "" for c in " !@#$%^&*()[]{};:./<>?\|`~-=_+"})
>>> name
'10,02'
>>> name = name.replace(",", ".")
>>> name
'10.02'
>>> float(name)
10.02
>>>

Espero que ajude

Answered by Paulo Marques on October 10, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP