Utilizo el siguiente segmento de código para leer un archivo en python:
with open ("data.txt", "r") as myfile:
data=myfile.readlines()
El archivo de entrada es:
LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN
GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE
y cuando imprimo datos me sale
['LLKKKKKKKKMMMMMMMMNNNNNNNNNNNNN\n', 'GGGGGGGGGHHHHHHHHHHHHHHHHHHHHEEEEEEEE']
Como veo los datos están en list
forma. ¿Cómo lo hago cadena? Y también cómo puedo eliminar las "\n"
, "["
y "]"
personajes de ella?
Respuestas:
Podrías usar:
fuente
open("data.txt").read().replace('\n','')
lugar?rstrip('\n')
solo eliminará la nueva línea de la última línea, lareplace('\n','')
eliminará en todas partes (esencialmente haciendo que todo el archivo sea una línea)Uso
read()
, noreadline()
:fuente
encoding="utf-8"
Puede leer desde un archivo en una línea:
Tenga en cuenta que esto no cierra el archivo explícitamente.
CPython cerrará el archivo cuando salga como parte de la recolección de basura.
Pero otras implementaciones de Python no lo harán. Para escribir código portátil, es mejor usar
with
o cerrar el archivo explícitamente. Corto no siempre es mejor. Ver https://stackoverflow.com/a/7396043/362951fuente
open
debe usarse dentro de unawith ... as
declaración.with ... as
declaración aporta algo?with ... as
ostr.close()
como se demostró en la respuesta de Pedro. Más sobre la importancia de cerrar archivos aquístr()
de dejar de construirPara unir todas las líneas en una cadena y eliminar nuevas líneas, normalmente uso:
fuente
En Python 3.5 o posterior, usando pathlib puede copiar el contenido del archivo de texto en una variable y cerrar el archivo en una línea:
y luego puede usar str.replace para eliminar las nuevas líneas:
fuente
join () se unirá a una lista de cadenas, y rstrip () sin argumentos recortará espacios en blanco, incluidas las nuevas líneas, desde el final de las cadenas.
fuente
Esto se puede hacer usando el método read ():
O como el modo predeterminado en sí mismo es 'r' (lectura), simplemente use,
fuente
He jugado un poco con esto por un tiempo y prefiero usarlo
read
en combinación conrstrip
. Sinrstrip("\n")
, Python agrega una nueva línea al final de la cadena, que en la mayoría de los casos no es muy útil.fuente
Es difícil saber exactamente lo que buscas, pero algo como esto debería ayudarte a comenzar:
fuente
data = ' '.join(line.replace('\n', '') for line in myfile)
o la versión de MagerValp.Me sorprende que nadie lo haya mencionado
splitlines()
todavía.La variable
data
ahora es una lista que se ve así cuando se imprime:Tenga en cuenta que no hay líneas nuevas (
\n
).En ese momento, parece que desea imprimir las líneas a la consola, lo que puede lograr con un bucle for:
fuente
También puede quitar cada línea y concatenar en una cadena final.
Esto también funcionaría bien.
fuente
¡puedes comprimir esto en una en dos líneas de código!
si su archivo lee:
salida de python
fuente
Esta es una solución de una línea, que se puede copiar y pegar, que también cierra el objeto del archivo:
fuente
fuente
string += line
Deben evitarse los bucles que tienen un . Algunas versiones de Python pueden evitar el comportamiento O (n ^ 2) aquí, pero cualquiera de las otras respuestas que se han dado es mejor que esto. Además, no eliminó las nuevas líneas solicitadas, por lo que su código es una forma muy lenta de hacerlostring = f.read()
python3: "lista de comprensión" de Google si la sintaxis de corchetes es nueva para usted.
fuente
¿Has probado esto?
fuente
No creo que nadie haya abordado la [] parte de su pregunta. Cuando lees cada línea en tu variable, porque había varias líneas antes de reemplazar el \ n con '' terminaste creando una lista. Si tiene una variable de x e imprima con solo
X
o imprimir (x)
o str (x)
Verá la lista completa con los corchetes. Si llama a cada elemento del (conjunto de tipos)
x [0] luego omite los corchetes. Si usa la función str () verá solo los datos y no el '' tampoco. str (x [0])
fuente
¿Quizás podrías probar esto? Lo uso en mis programas.
fuente
La expresión regular también funciona:
fuente
Para eliminar saltos de línea con Python, puede usar la
replace
función de una cadena.Este ejemplo elimina los 3 tipos de saltos de línea:
El archivo de ejemplo es:
Puedes probarlo usando este escenario de repetición:
https://repl.it/repls/AnnualJointHardware
fuente
Esto funciona: cambie su archivo a:
Entonces:
Esto crea una lista llamada
words
que es igual a:Eso eliminó el "\ n". Para responder la parte sobre los paréntesis que se interponen en su camino, simplemente haga esto:
O:
Esto devuelve:
fuente
Este código lo ayudará a leer la primera línea y luego, utilizando la opción de lista y división, puede convertir la palabra de la primera línea separada por espacio para almacenarla en una lista.
Entonces puede acceder fácilmente a cualquier palabra, o incluso almacenarla en una cadena.
También puede hacer lo mismo con el uso de un bucle for.
fuente
fuente
Intenta lo siguiente:
Precaución: no elimina el
\n
. Es solo para ver el texto como si no hubiera\n
fuente