es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , ,

Answer

  1. Avatar for 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 usando pyperclip.paste(), Python lo interpreta como una cadena única con terminaciones de línea '\r\n'.

    Cuando escribes esta cadena en un archivo .txt usando file.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étodo replace(), de la siguiente manera:

    import pyperclip
    
    texto = pyperclip.paste().replace('\r\n', '\n')
    with open('archivo.txt', 'w') as archivo:
        archivo.write(texto)
    

    La instrucción with se utiliza aquí para asegurarse de que el archivo se cierre correctamente después de escribirlo. Ahora, cuando abras el archivo archivo.txt en un editor de texto, las líneas deberían estar correctamente separadas sin ningún espacio adicional.

Comments are closed.