2014-01-21 2 views
0

Это домашнее задание, и я не могу понять его.Программа печатает отдельные строки, а не весь файл

«Написать программу, которая запрашивает у пользователя имя файла. Программа должна отображать только первые пять строк содержимого файла. Если файл содержит менее пяти строк, он должен отображать все содержимое файла. "

Всякий раз, когда программа считывает файл с более чем 5 строками, он печатает только первые 5 строк. Однако, когда файл читается с менее чем 5 строками, он должен печатать весь файл, но он этого не делает. Любая помощь приветствуется.

def file_head_display(): 
    total = 0 
    file = str(input('Enter the name of the file')) 
    f_open = open (file, 'r') 
    line1 = f_open.readline() 
    line2 = f_open.readline() 
    line3 = f_open.readline() 
    line4 = f_open.readline() 
    line5 = f_open.readline() 



    for line in f_open: 
     amount = int(line) 
     total += amount 

    if total > 5: 
     print(line1) 
     print(line2) 
     print(line3) 
     print(line4) 
     print(line5) 
    else: 
     contents = f_open.read() 
     print(contents) 


file_head_display() 

ответ

0

Рабочий раствор

def file_head_display(limit = 5): 
    file = str(input('Enter the name of the file: ')) 
    f_open = open (file, 'r') 

    line_counter = 0   
    for line in f_open:     # for each line in the text file 
     if line_counter < limit:   # if current line is < 5 
      print(line, end="")   # then print the line 
      line_counter += 1 
     else:       # else, stop looping 
      break 

file_head_display() 

Пояснения

Есть несколько вопросов о вашем фрагменте кода:

  • Каждый вызов к readline потребляем одна линия, ы o цикл for, который вы используете start после 5 первых строк.
  • Цикл for перебирает строку в файле; это не противоречит линии (так преобразования в междунар беспорядок)
  • Пожалуйста, используйте петлю с умом, не пишут в 5 раз одно и то же
+0

Спасибо вам код, который вы дали работал. Я все еще выясняю, что делают разные инструкции в коде, который вы указали. Благодаря! –

Смежные вопросы