Comando Head


Descripción

Crea una función que haga lo mismo que el comando de terminal head. Debe de tomar como argumentos el nombre de un archivo a leer, el número de líneas a leer, y el nombre de el archivo al cuál escribir esas líneas. Si el tercer parámetro es None, en lugar de escribir a un archivo.

Puedes solicitar ayuda a un asistente virtual, pero si lo haces dile que no use las instrucciones with ni try.

Ejemplo de Ejecución:

head('test-input.txt', 4)
test
is
a
test

head('test-input.txt', 4, 'test-output.txt') # el archivo test-output contendrá las líneas impresas arriba

Solución

Mostrar solución
def head(input_file, line_count, output_file):
  in_file = open(input_file, 'r')

  out_file = None
  if output_file is not None:
    out_file = open(output_file, 'w')

  for i in range(line_count):
    if out_file is not None:
      out_file.write(in_file.readline())
    else:
      print(in_file.readline(), end='')

  in_file.close()
  if out_file is not None:
    out_file.close()

head('test-input.txt', 4, None)
head('test-input.txt', 4, 'test-output.txt')

Probar solución en Google Colab

Fuente del ejercicio: https://allendowney.github.io/ThinkPython/chap08.html#exercise