Python .write está creando espacios no deseados entre líneas.
Me estoy encontrando con un problema en Python al escribir archivos como archivos de texto desde el portapapeles. Estoy utilizando pyperclip.paste()
para obtener los datos del portapapeles y escribir el archivo. Pero cuando uso el comando .write
en Python para crear un archivo .txt
, el archivo de texto tiene espacios enormes entre líneas y no entiendo por qué. Compartiré capturas de pantalla de lo que quiero decir.
Aquí están los códigos que utilicé.
import pyperclip
archivo = open(“archivo.txt”, “w”)
print(pyperclip.paste())
archivo.write(pyperclip.paste())
archivo.close()
Este es el contenido de mi portapapeles que estoy intentando convertir en un archivo de texto. Tiene una correcta tabulación y formato de nueva línea. Por cierto, es el contenido que obtengo de “copiar texto” en Quizlet usando Selenium, pero independientemente de cómo copie el texto (bloc de notas, Word), el problema persiste.
Extrinsic pathway cascada de factores de coagulación en la sangre que ha escapado del sistema vascular para formar un coágulo en el exterior del vaso dañado
Common Pathway donde convergen las vías intrínseca y extrínseca
Initiation of clotting pathway daño tisular causado por el factor 7a en la vía extrínseca
Thrombin Activation factor 5,8,11,13
Thrombin – activar las plaquetas
– convertir fibrinógeno en fibrina
– activar factores y proteína C
Tissue factor inicia la vía extrínseca cuando se libera en respuesta al daño tisular
Calcium needed extrínseca 9-10, 10-2
intrínseca 11-9, 9-10, 10-2
Imagen de pegar el contenido del portapapeles en el bloc de notas cuando se pega en el bloc de notas, tiene el formato correcto.
Imagen de la terminal de VSCode También utilicé print(pyperclip.paste())
, y la salida de texto es normal.
El archivo.txt escrito por Python con formato incorrecto cuando uso file.write(pyperclip.paste())
para escribir el archivo, hay espacios entre líneas donde no debería haberlos.
¿Qué está pasando? ¿Cómo puedo solucionar este problema y guardar el archivo de texto correcto?
davy.ai
Solución
El problema aquí se debe probablemente a las diferentes terminaciones de línea utilizadas por diferentes sistemas operativos. Windows utiliza
'\r\n'
(retorno de carro + avance de línea) como terminación de línea, mientras que los sistemas basados en Unix (incluyendo macOS y Linux) utilizan'\n'
(avance de línea) solamente. Cuando copias el texto desde el Bloc de notas (que utiliza'\r\n'
) y lo pegas en Python usandopyperclip.paste()
, Python lo interpreta como una cadena única con terminaciones de línea'\r\n'
.Cuando escribes esta cadena en un archivo
.txt
usandofile.write()
, Python interpreta el carácter'\r'
como un carácter de espacio en blanco, por lo que cada línea tiene un espacio adicional entre ella y la siguiente línea. Para solucionar este problema, puedes reemplazar todas las ocurrencias de'\r\n'
por'\n'
usando el métodoreplace()
, de la siguiente manera:La instrucción
with
se utiliza aquí para asegurarse de que el archivo se cierre correctamente después de escribirlo. Ahora, cuando abras el archivoarchivo.txt
en un editor de texto, las líneas deberían estar correctamente separadas sin ningún espacio adicional.