Eu uso o seguinte segmento de código para ler um arquivo em python:
with open ("data.txt", "r") as myfile:
data=myfile.readlines()
O arquivo de entrada é:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
e quando imprimo dados, recebo
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Pelo que vejo, os dados estão em list
forma. Como faço para torná-lo string? E também como faço para remover os "\n"
, "["
e "]"
personagens a partir dele?
Respostas:
Você poderia usar:
fonte
open("data.txt").read().replace('\n','')
?rstrip('\n')
apenas removerá a nova linha da última linha e areplace('\n','')
removerá em todos os lugares (essencialmente tornando o arquivo inteiro em uma linha)Use
read()
, nãoreadline()
:fonte
encoding="utf-8"
Você pode ler de um arquivo em uma linha:
Observe que isso não fecha o arquivo explicitamente.
O CPython fechará o arquivo quando sair como parte da coleta de lixo.
Mas outras implementações de python não. Para escrever código portátil, é melhor usar
with
ou fechar o arquivo explicitamente. Curto nem sempre é melhor. Consulte https://stackoverflow.com/a/7396043/362951fonte
open
deve ser usado dentro de umawith ... as
declaração.with ... as
declaração traz alguma coisa?with ... as
oustr.close()
conforme demonstrado na resposta de Pedro. Mais sobre a importância de arquivos de fechamento aquistr()
de builtinsPara unir todas as linhas em uma string e remover novas linhas, eu normalmente uso:
fonte
No Python 3.5 ou posterior, usando pathlib, você pode copiar o conteúdo do arquivo de texto em uma variável e fechar o arquivo em uma linha:
e então você pode usar str.replace para remover as novas linhas:
fonte
join () juntará uma lista de strings, e rstrip () sem argumentos cortará espaços em branco, incluindo novas linhas, no final das strings.
fonte
Isso pode ser feito usando o método read ():
Ou como o modo padrão em si é 'r' (leitura), basta usar,
fonte
Eu brinquei com isso por um tempo e prefiro usar
read
em combinação comrstrip
. Semrstrip("\n")
, o Python adiciona uma nova linha ao final da string, o que na maioria dos casos não é muito útil.fonte
É difícil dizer exatamente o que você procura, mas algo assim deve ajudá-lo:
fonte
data = ' '.join(line.replace('\n', '') for line in myfile)
ou a versão do MagerValp.Estou surpreso que ninguém
splitlines()
tenha mencionado ainda.Variável
data
agora é uma lista que se parece com esta quando impressa:Observe que não há novas linhas (
\n
).Nesse ponto, parece que você deseja imprimir as linhas para o console, o que você pode obter com um loop for:
fonte
Você também pode retirar cada linha e concatenar em uma sequência final.
Isso também funcionaria bem.
fonte
você pode compactar isso em um em duas linhas de código !!!
se seu arquivo diz:
saída python
fonte
Esta é uma solução passível de cópia de uma linha que também fecha o objeto de arquivo:
fonte
fonte
string += line
devem ser evitados. Algumas versões do Python podem conseguir evitar o comportamento de O (n ^ 2) aqui, mas qualquer uma das outras respostas dadas é melhor que isso. Além disso, você não removeu as novas linhas que foram solicitados para que o seu código é apenas uma maneira muito lenta de fazerstring = f.read()
python3: o Google "comphrension da lista" se a sintaxe entre colchetes for nova para você.
fonte
Você já tentou isso?
fonte
Não acho que alguém tenha abordado a parte [] da sua pergunta. Quando você lê cada linha em sua variável, porque havia várias linhas antes de substituir o \ n por '', você acabou criando uma lista. Se você tiver uma variável de x e imprimi-la apenas
x
ou imprimir (x)
ou str (x)
Você verá a lista inteira com colchetes. Se você chamar cada elemento do (array de tipos)
x [0] então omite os colchetes. Se você usar a função str (), verá apenas os dados e também o ''. str (x [0])
fonte
Talvez você possa tentar isso? Eu uso isso em meus programas.
fonte
A expressão regular também funciona:
fonte
Para remover quebras de linha usando Python, você pode usar a
replace
função de uma string.Este exemplo remove todos os três tipos de quebras de linha:
O arquivo de exemplo é:
Você pode experimentá-lo usando este cenário de reprodução:
https://repl.it/repls/AnnualJointHardware
fonte
Isso funciona: Altere seu arquivo para:
Então:
Isso cria uma lista chamada
words
igual a:Isso se livrou do "\ n". Para responder à parte sobre os colchetes no seu caminho, faça o seguinte:
Ou:
Isso retorna:
fonte
Esse código o ajudará a ler a primeira linha e, usando a opção list and split, você poderá converter a palavra da primeira linha separada por espaço para ser armazenada em uma lista.
Você pode acessar facilmente qualquer palavra ou até armazená-la em uma string.
Você também pode fazer o mesmo com o uso de um loop for.
fonte
fonte
Tente o seguinte:
Cuidado: Não remove o
\n
. É apenas para visualizar o texto como se não houvesse\n
fonte