Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Remover ponto e vírgulaem arquivos CSV

with open('teste2.csv') as arquivo:
  for linha in arquivo:
    linha = linha.strip()
    print(linha)

Existe a possibilidade de remover o ';' em arquivos CSV ? Estou utilizando o código acima, porém a minha saída é essa:

Pasta;Saldo;; 000102030;R$ 1.000.000,00;; 000102031;R$ 1.000.001,00;; 000102032;R$ 1.000.002,00;; 000102033;R$ 1.000.003,00;; 000102034;R$ 1.000.004,00;; 000102035;R$ 1.000.005,00;; 000102036;R$ 1.000.006,00;; 000102037;R$ 1.000.007,00;; 000102038;R$ 1.000.008,00;;

3 respostas

Ei Rafael, tudo bem?

Você pode utilizar o método split para isto. O que ele faz é retornar uma lista de caracteres sem o separador especificado, neste caso o ;.

linha = linha.strip().split(';')

Caso ainda não seja o resultado que você espera, compartilhe o seu arquivo 'teste2.csv' conosco para que possamos ser mais assertivos quanto a isso.

Abraços e bons estudos!

pastas = []
with open('teste2.csv') as arquivo:
  for linha in arquivo:
    linha = linha.strip().split(';')
    pastas.append(linha)
    print(pastas)

Oi Nádia, boa tarde. Tudo bem ? Com essa alteração que vc me sugeriu, a minha saída ficou assim:

['Pasta', 'Saldo', '', '']] [['Pasta', 'Saldo', '', ''], ['000102030', 'R$ 1.000.000,00', '', '']] [['Pasta', 'Saldo', '', ''], ['000102030', 'R$ 1.000.000,00', '', ''], ['000102031', 'R$ 1.000.001,00', '', '']] [['Pasta', 'Saldo', '', ''], ['000102030', 'R$ 1.000.000,00', '', ''], ['000102031', 'R$ 1.000.001,00', '', ''], ['000102032', 'R$ 1.000.002,00', '', '']] [['Pasta', 'Saldo', '', ''], ['000102030', 'R$ 1.000.000,00', '', ''], ['000102031', 'R$ 1.000.001,00', '', ''], ['000102032', 'R$ 1.000.002,00', '', ''], ['000102033', 'R$ 1.000.003,00', '', '']] [['Pasta', 'Saldo', '', ''], ['000102030', 'R$ 1.000.000,00', '', ''], ['000102031', 'R$ 1.000.001,00', '', ''], ['000102032', 'R$ 1.000.002,00', '', ''], ['000102033', 'R$ 1.000.003,00', '', ''], ['000102034', 'R$ 1.000.004,00', '', '']] [['Pasta', 'Saldo', '', ''], ['000102030', 'R$ 1.000.000,00', '', ''], ['000102031', 'R$ 1.000.001,00', '', ''], ['000102032', 'R$ 1.000.002,00', '', ''], ['000102033', 'R$ 1.000.003,00', '', ''], ['000102034', 'R$ 1.000.004,00', '', ''], ['000102035', 'R$ 1.000.005,00', '', '']] [['Pasta', 'Saldo', '', ''], ['000102030', 'R$ 1.000.000,00', '', ''], ['000102031', 'R$ 1.000.001,00', '', ''], ['000102032', 'R$ 1.000.002,00', '', ''], ['000102033', 'R$ 1.000.003,00', '', ''], ['000102034', 'R$ 1.000.004,00', '', ''], ['000102035', 'R$ 1.000.005,00', '', ''], ['000102036', 'R$ 1.000.006,00', '', '']] [['Pasta', 'Saldo', '', ''], ['000102030', 'R$ 1.000.000,00', '', ''], ['000102031', 'R$ 1.000.001,00', '', ''], ['000102032', 'R$ 1.000.002,00', '', ''], ['000102033', 'R$ 1.000.003,00', '', ''], ['000102034', 'R$ 1.000.004,00', '', ''], ['000102035', 'R$ 1.000.005,00', '', ''], ['000102036', 'R$ 1.000.006,00', '', ''], ['000102037', 'R$ 1.000.007,00', '', '']] [['Pasta', 'Saldo', '', ''], ['000102030', 'R$ 1.000.000,00', '', ''], ['000102031', 'R$ 1.000.001,00', '', ''], ['000102032', 'R$ 1.000.002,00', '', ''], ['000102033', 'R$ 1.000.003,00', '', ''], ['000102034', 'R$ 1.000.004,00', '', ''], ['000102035', 'R$ 1.000.005,00', '', ''], ['000102036', 'R$ 1.000.006,00', '', ''], ['000102037', 'R$ 1.000.007,00', '', ''], ['000102038', 'R$ 1.000.008,00', '', '']]

Loucura né ? kkkkkkkkkk

Eu estou querendo ler esse arquivo 'teste2.csv', separar pelas colunas e povoar duas listas distintas, uma lista com os valores da coluna pasta e a outra lista com os valores da coluna saldo. Esse arquivo seria atualizado diariamente. Eu quero montar um código, para que sempre que eu busque a pasta, ele já me retorne o valor do saldo correspondente daquela pasta.

Eu não consegui achar a opção para encaminhar o arquivo 'teste2.csv'.

Não sei se fui claro na minha explicação, kkkkkkkkkkkk

Muito obrigado pela atenção.

solução!

Rafael, creio que seu arquivo teste.csv esteja organizado da seguinte maneira:

Quando aplicamos o método split ele irá nos retornar uma lista da seguinte forma:

Observe que temos um padrão, pois as duas primeiras posições da lista que o split irá nos retornar contém os valores da coluna pasta e da coluna saldo. Então podemos guardar em uma lista os valores que nos interessa. Uma lista guardará os valores da pasta que estão na posição 0 e outra lista guardará os valores de saldo que estão na posição 1:


lista_com_os_valores_da_coluna_pasta = []
lista_com_os_valores_da_coluna_saldo = []

valores_do_arquivo = []
with open('teste2.csv') as arquivo:
  for linha in arquivo:
    linha = linha.strip().split(';')
    lista_com_os_valores_da_coluna_pasta.append(linha[0])
    lista_com_os_valores_da_coluna_saldo.append(linha[1])

print('Lista com os valores da coluna pasta: ', lista_com_os_valores_da_coluna_pasta)
print('Lista com os valores coluna saldo: ', lista_com_os_valores_da_coluna_saldo)

Resultado:

E para retornar o saldo referente a pasta buscada basta utilizar o método index que irá nos retornar em qual posição aquela pasta se encontra na lista e com isso, saberemos qual o saldo respectivo:

lista_com_os_valores_da_coluna_pasta = []
lista_com_os_valores_da_coluna_saldo = []

valores_do_arquivo = []
with open('teste2.csv') as arquivo:
  for linha in arquivo:
    linha = linha.strip().split(';')
    lista_com_os_valores_da_coluna_pasta.append(linha[0])
    lista_com_os_valores_da_coluna_saldo.append(linha[1])

# Buscando a pasta:

numero_da_pasta = input('Digite o número da pasta: ')
indice = lista_com_os_valores_da_coluna_pasta.index(numero_da_pasta)

print(f'Saldo da pasta: {lista_com_os_valores_da_coluna_saldo[indice]}')

Seria este o resultado que você espera?

Qualquer dúvida é só falar. Abraços e bons estudos!