2016-02-19 4 views
0

Всякий раз, когда я пытаюсь читать файлы с помощью моей программы python, я получаю только одну строку до остановки команды. Я почти уверен, что это связано с print(line), но я не знаю никаких других вариантов. Вот то, что я до сих пор:Как распечатать несколько строк файла с помощью python?

def fopen(): 
    file = input("Open: ") 
    print("") 
    with open(file, 'r') as f: 
     for line in f: 
      print(line) 
      print("") 
      editredirect() 

def editredirect(): 
    print("You can edit this file with the 'edit' command.") 
    dcmdLvl2() 

dcmdLcl2() просто отправить меня обратно в командной строке.

+4

Я не вижу ничего плохого в этом. Что делает 'dcmdLvl2'? –

+0

Что делает 'editredirect()' do? –

+1

Я думаю, вам нужно unindent 'editredirect()' для выравнивания с 'with' –

ответ

2

Вы хотите напечатать "You can edit this file..." за каждые строка в файле? Вероятно, не ...

Кроме того, если dcmdLvl2() выходит по сценарию по какой-либо причине, тогда да, вы увидите только одну строку своего файла.

Try ун-отступов editredirect()

def fopen(): 
    file = input("Open: ") 
    print("") 
    with open(file, 'r') as f: 
     for line in f: 
      print(line) 
      print("") # new line? 
    editredirect() 

def editredirect(): 
    print("You can edit this file with the 'edit' command.") 
    dcmdLvl2() 
0

Ваш editredirect() находится внутри цикла из-за отступа. Попробуйте удалить отступ и переместить editredirect() (и, возможно, print("")) из петли.

0

Вы перенаправлять в командную строку после прочтения одной строки, вы должны удалить editredirect из for цикла:

def fopen(): 
    file = input("Open: ") 
    print("") 
    with open(file, 'r') as f: 
     for line in f: 
      print(line) 
      print("") 
    editredirect() 
Смежные вопросы