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.

Cómo mostrar el contenido de varios archivos desde un script de Python

Me gustaría mostrar el contenido de los archivos generados por un script de Python usando el comando cat. ¿Es posible hacerlo en una sola línea de comando sencilla? Por ejemplo, me gustaría tener algo como:

cat <(python test.py) # no funciona como quiero

donde test.py produce varios nombres de archivos como este (separados por nueva línea):

file1.txt
file2.txt
file3.txt

Básicamente, me gustaría hacer esto:

cat file1.txt
cat file2.txt
cat file3.txt

Es decir, leer el contenido de los archivos generados por el script. Supongamos que el script de Python puede generar cientos/miles de nombres de archivo.

Aunque esto puede parecer que funciona:

cat $(python test.py)

El problema es que parece esperar hasta que se complete todo python test.py antes de ejecutar cualquier cat. Básicamente, no parece mostrar el contenido del archivo en cuanto obtiene el nombre del archivo. En cambio,

cat <(python test.py)

muestra el nombre del archivo en cuanto lo obtiene, desafortunadamente, solo imprime el nombre del archivo pero no el contenido del archivo.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el resultado deseado, puedes utilizar una combinación de los comandos xargs y cat. El comando xargs lee elementos de la entrada estándar, delimitados por saltos de línea, y ejecuta un comando para cada elemento. Así que puedes pasar los nombres de archivo generados por tu script de Python a xargs y luego usar el comando cat para mostrar el contenido de cada archivo.

    Aquí tienes un ejemplo de comando que hace esto:

    python test.py | xargs -d '\n' cat
    

    En este comando, test.py genera los nombres de archivo y la salida se redirige a xargs. La opción -d de xargs establece el delimitador como salto de línea, de modo que puede manejar correctamente los nombres de archivo que contienen espacios u otros caracteres especiales. Luego, cat se ejecuta para cada nombre de archivo pasado por xargs, lo que lee y muestra el contenido de cada archivo.

    Este comando funcionará para cualquier cantidad de archivos generados por tu script de Python, incluyendo cientos o miles de archivos.

Comments are closed.