option
Cuestiones
ayuda
daypo
buscar.php

RA05 - Python

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
RA05 - Python

Descripción:
Parte 7

Fecha de Creación: 2026/01/07

Categoría: Otros

Número Preguntas: 10

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

Al leer un archivo de texto grande, ¿qué ventaja práctica tiene iterar línea a línea con for linea in f frente a usar f.read()? ok. Permite leer todo el contenido de golpe ocupando más memoria y simplificando el código siempre. Evita que el archivo se cierre al salir del bloque with y mantiene el descriptor abierto siempre. Permite procesar cada línea usando poca memoria sin cargar todo el archivo completo en una sola cadena. Permite que readline y readlines se llamen automáticamente sin tener que escribir bucles explícitos.

¿Qué debes tener en cuenta al usar f.writelines(lineas) para escribir varias cadenas en un archivo de texto?. Es necesario que cada cadena de la lista incluya su propio salto de línea si se desean líneas separadas. Es obligatorio pasar una lista de enteros y no de cadenas para que el método acepte los datos sin fallo. Es obligatorio pasar una lista de enteros y no de cadenas para que el método acepte los datos sin fallo. Solo funciona en modo binario y requiere indicar encoding para poder manejar los bytes escritos.

Al copiar un archivo binario grande como una imagen usando bloques de tamaño fijo, ¿qué patrón de lectura y escritura es más adecuado?. Usar open con modo "r" y "w", leer todo con read() y escribir una única vez el contenido completo. Usar open con modo "rb" y "wb", leer un solo byte con read(1) y escribir en un bucle infinito sin condición. Usar open con modo "ab" y "xb", leer con readlines() y escribir cada línea como si fuera texto plano. Usar open con modo "rb" y "wb", leer bloques con read(tam_bloque) y escribirlos hasta que read devuelva vacío.

¿Por qué se recomienda abrir archivos CSV con newline="" al usar csv.DictWriter o csv.DictReader en modo texto?. Para que el módulo csv convierta automáticamente todos los valores numéricos en tipos enteros sin intervención del usuario. Para evitar que se inserten saltos de línea duplicados en algunas plataformas como Windows al escribir filas. Para permitir que el separador de campos cambie dinámicamente entre comas y punto y coma en el mismo archivo. Para obligar a que el archivo se abra siempre en binario y evitar el uso involuntario de encoding en el texto.

¿Qué comportamiento tiene csv.DictReader respecto a los tipos de datos al leer un archivo productos.csv?. Devuelve directamente enteros y flotantes cuando los campos se llaman precio o stock en el encabezado. Devuelve una lista de tuplas sin claves, donde solo se conservan los valores sin información de columnas. Devuelve diccionarios cuyas claves son los nombres de columna y cuyos valores son cadenas que debes convertir. Devuelve objetos JSON preparseados que pueden pasarse a json.dump sin realizar ningún tipo de conversión previa.

Al escribir y leer un archivo usuarios.json con json.dump y json.load, ¿qué efecto tiene usar ensure_ascii=False en la escritura?. Permite que caracteres con acentos y letras no ASCII se guarden tal cual en el archivo sin ser escapados. Obliga a que todos los textos se codifiquen como bytes en lugar de cadenas y se lean solo en modo binario. Hace que json.load ignore cualquier error y devuelva siempre una lista vacía si el archivo está corrupto. Impide que se añadan sangrías con indent y obliga a escribir todo el JSON en una sola línea sin espacios.

¿Qué caracteriza el formato JSON Lines (también llamado NDJSON) en comparación con un JSON tradicional de lista completa?. Almacena todos los registros en un único objeto JSON gigante que debe cargarse siempre entero en memoria. Almacena un diccionario por archivo y prohíbe totalmente las estructuras de tipo lista o anidamientos internos. Almacena un objeto JSON por línea de texto permitiendo leer y procesar cada evento con json.loads en un bucle. Almacena datos binarios sin codificación y requiere abrir los archivos únicamente en modo "rb" para leerlos.

Al implementar una función contar_lineas que devuelve el número de filas de un archivo de texto, ¿qué enfoque describe mejor la solución propuesta?. Leer todo el contenido con read(), contar manualmente los caracteres de nueva línea y devolver ese número al final. Abrir el archivo con open, iterar directamente sobre f en un bucle for e incrementar un contador por cada línea encontrada. Abrir el archivo en modo binario "rb", sumar el tamaño de los bloques y dividirlos por la longitud media de cada línea. Usar readlines() para obtener una lista de todas las líneas y eliminarla después de contar con len de la lista.

En la función escribir_seguro, ¿qué propósito tiene crear primero un archivo temporal y luego llamar a os.replace sobre la ruta destino?. Permitir que el archivo temporal se quede siempre en disco como copia de seguridad incluso después del reemplazo final. Garantizar que el archivo destino se abra en modo binario antes de escribir y que nunca se escriba texto en él. Evitar que el archivo final quede a medias si algo falla durante la escritura, sustituyendo de forma atómica el contenido previo. Conseguir que la carpeta padre se borre automáticamente después de la escritura para no dejar residuos en el sistema.

¿Cuál de los siguientes problemas típicos se soluciona al recordar las recomendaciones del apartado de errores frecuentes?. Evitar caracteres extraños y archivos ilegibles usando siempre encoding="utf-8" y distinguiendo entre texto y binario. Evitar que read devuelva cadenas vacías obligando al archivo a crecer de tamaño en cada operación de lectura. Garantizar que CSV con comas internas funcionen escribiendo todo a mano sin usar nunca el módulo csv del estándar. Asegurar que no queden líneas pegadas omitiendo siempre el carácter de salto de línea en todas las llamadas a write.

Denunciar Test